Version Notes
1.2.7
Download this release
Release Info
| Developer | EcomwiseTeam |
| Extension | Ecomwise_MshopB2B |
| Version | 1.2.7 |
| Comparing to | |
| See all releases | |
Version 1.2.7
- app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/EcomwiseCustomerGrid.php +189 -0
- app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/EcomwisePromoCatalogEditTab.php +60 -0
- app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/EcomwisePromoCatalogGrid.php +222 -0
- app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/Grid/Filter/Contactgroup.php +20 -0
- app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/Sales/Order/Create/Shipping/Method/Form.php +39 -0
- app/code/community/Ecomwise/MshopB2B/Block/Customerattribute/Helper/Mamutgroups.php +67 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/CompanyRenderer.php +20 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogCustomer.php +35 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogFilterCustomer.php +15 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogFilterCustomerGroup.php +15 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogRenderer.php +62 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/MamutContactRenderer.php +18 -0
- app/code/community/Ecomwise/MshopB2B/Block/Renderers/MamutIDRenderer.php +24 -0
- app/code/community/Ecomwise/MshopB2B/Block/System/Config/Version.php +7 -0
- app/code/community/Ecomwise/MshopB2B/Helper/Contactgroup.php +19 -0
- app/code/community/Ecomwise/MshopB2B/Helper/Data.php +38 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Credit/Api.php +79 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Credit/Api/V2.php +5 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Customer/Api.php +450 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Customer/Api/V2.php +5 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Mamut/Api.php +95 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Mamut/Api/V2.php +5 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Promotions/Api.php +525 -0
- app/code/community/Ecomwise/MshopB2B/Model/Api/Promotions/Api/V2.php +6 -0
- app/code/community/Ecomwise/MshopB2B/Model/Carrier/Mamutshipping.php +39 -0
- app/code/community/Ecomwise/MshopB2B/Model/Catalogpromotions.php +89 -0
- app/code/community/Ecomwise/MshopB2B/Model/Collections/RuleCollection.php +21 -0
- app/code/community/Ecomwise/MshopB2B/Model/Customer/Group.php +13 -0
- app/code/community/Ecomwise/MshopB2B/Model/Customerattribute/Backend/Mamutgroups.php +64 -0
- app/code/community/Ecomwise/MshopB2B/Model/Customerattribute/Source/Mamutgroups.php +32 -0
- app/code/community/Ecomwise/MshopB2B/Model/Observer.php +80 -0
- app/code/community/Ecomwise/MshopB2B/Model/Payment/Mamutbilling.php +13 -0
- app/code/community/Ecomwise/MshopB2B/Model/Rules/CatalogRule.php +55 -0
- app/code/community/Ecomwise/MshopB2B/Model/Rules/Combine.php +17 -0
- app/code/community/Ecomwise/MshopB2B/Model/Rules/MySQL4Rule.php +284 -0
- app/code/community/Ecomwise/MshopB2B/Model/Sales/Tax/Subtotal.php +75 -0
- app/code/community/Ecomwise/MshopB2B/Model/SalesRule/Validator.php +215 -0
- app/code/community/Ecomwise/MshopB2B/controllers/CartController.php +38 -0
- app/code/community/Ecomwise/MshopB2B/controllers/OrderController.php +45 -0
- app/code/community/Ecomwise/MshopB2B/etc/api.xml +427 -0
- app/code/community/Ecomwise/MshopB2B/etc/config.xml +197 -0
- app/code/community/Ecomwise/MshopB2B/etc/system.xml +69 -0
- app/code/community/Ecomwise/MshopB2B/etc/wsdl.xml +886 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-install-1.2.2.php +117 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.0-1.2.1.php +41 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.1-1.2.2.php +42 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.2-1.2.3.php +75 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.3-1.2.4.php +19 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.4-1.2.5.php +7 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.5-1.2.6.php +12 -0
- app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.6-1.2.7.php +78 -0
- app/etc/modules/Ecomwise_MshopB2B.xml +10 -0
- package.xml +18 -0
app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/EcomwiseCustomerGrid.php
ADDED
|
@@ -0,0 +1,189 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Customers grid override.
|
| 4 |
+
* Mamut ID field is added to the customer grid
|
| 5 |
+
**/
|
| 6 |
+
|
| 7 |
+
class Ecomwise_MshopB2B_Block_Adminhtml_EcomwiseCustomerGrid extends Mage_Adminhtml_Block_Customer_Grid{
|
| 8 |
+
|
| 9 |
+
protected function _prepareCollection(){
|
| 10 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 11 |
+
$table_name = $resurce->getTableName('ecomwise_customermamut_mapping');
|
| 12 |
+
$customer_entity_text = $resurce->getTableName('customer_entity_text');
|
| 13 |
+
|
| 14 |
+
/* get mamut_contact_groups attribute Id*/
|
| 15 |
+
$entityTypeId = Mage::getModel('eav/config')->getEntityType('customer')->getEntityTypeId();
|
| 16 |
+
$attribute = Mage::getResourceModel('eav/entity_attribute_collection')
|
| 17 |
+
->setCodeFilter('mamut_contact_groups')
|
| 18 |
+
->setEntityTypeFilter($entityTypeId)
|
| 19 |
+
->getFirstItem();
|
| 20 |
+
|
| 21 |
+
$contactGroupAttrId = $attribute->getAttributeId();
|
| 22 |
+
|
| 23 |
+
|
| 24 |
+
$collection = Mage::getResourceModel('customer/customer_collection');
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
$collection->addNameToSelect()
|
| 28 |
+
->addAttributeToSelect('email')
|
| 29 |
+
->addAttributeToSelect('created_at')
|
| 30 |
+
->addAttributeToSelect('group_id')
|
| 31 |
+
->joinAttribute('billing_postcode', 'customer_address/postcode', 'default_billing', null, 'left')
|
| 32 |
+
->joinAttribute('billing_city', 'customer_address/city', 'default_billing', null, 'left')
|
| 33 |
+
->joinAttribute('billing_telephone', 'customer_address/telephone', 'default_billing', null, 'left')
|
| 34 |
+
->joinAttribute('billing_region', 'customer_address/region', 'default_billing', null, 'left')
|
| 35 |
+
->joinAttribute('billing_country_id', 'customer_address/country_id', 'default_billing', null, 'left')
|
| 36 |
+
->joinAttribute('billing_company', 'customer_address/company', 'default_billing', null, 'left')
|
| 37 |
+
->joinField('mamut_contact_groups',
|
| 38 |
+
$customer_entity_text,
|
| 39 |
+
'value',
|
| 40 |
+
'entity_id=entity_id',
|
| 41 |
+
"{{table}}.attribute_id='".$contactGroupAttrId."'",
|
| 42 |
+
'left');
|
| 43 |
+
|
| 44 |
+
$collection->joinField('mamut_id_a',
|
| 45 |
+
'mshopb2b/mshopb2b',
|
| 46 |
+
'mamut_id',
|
| 47 |
+
'customer_id=entity_id',
|
| 48 |
+
null,
|
| 49 |
+
'left');
|
| 50 |
+
;
|
| 51 |
+
$collection->addAttributeToSelect('mamut_contact_groups');
|
| 52 |
+
|
| 53 |
+
$this->setCollection($collection);
|
| 54 |
+
|
| 55 |
+
Mage::register('customer_c',$collection);
|
| 56 |
+
return Mage_Adminhtml_Block_Widget_Grid::_prepareCollection();
|
| 57 |
+
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
|
| 61 |
+
protected function _prepareColumns(){
|
| 62 |
+
$this->addColumn('entity_id', array(
|
| 63 |
+
'header' => Mage::helper('customer')->__('ID'),
|
| 64 |
+
'width' => '50px',
|
| 65 |
+
'index' => 'entity_id',
|
| 66 |
+
'type' => 'number',
|
| 67 |
+
));
|
| 68 |
+
|
| 69 |
+
$this->addColumn('name', array(
|
| 70 |
+
'header' => Mage::helper('customer')->__('Name'),
|
| 71 |
+
'index' => 'name'
|
| 72 |
+
));
|
| 73 |
+
$this->addColumn('email', array(
|
| 74 |
+
'header' => Mage::helper('customer')->__('Email'),
|
| 75 |
+
'width' => '140',
|
| 76 |
+
'index' => 'email'
|
| 77 |
+
));
|
| 78 |
+
|
| 79 |
+
$groups = Mage::getResourceModel('customer/group_collection')
|
| 80 |
+
->addFieldToFilter('customer_group_id', array('gt'=> 0))
|
| 81 |
+
->load()
|
| 82 |
+
->toOptionHash();
|
| 83 |
+
|
| 84 |
+
$this->addColumn('group', array(
|
| 85 |
+
'header' => Mage::helper('customer')->__('Group'),
|
| 86 |
+
'width' => '90',
|
| 87 |
+
'index' => 'group_id',
|
| 88 |
+
'type' => 'options',
|
| 89 |
+
'options' => $groups,
|
| 90 |
+
));
|
| 91 |
+
|
| 92 |
+
$this->addColumn('Telephone', array(
|
| 93 |
+
'header' => Mage::helper('customer')->__('Telephone'),
|
| 94 |
+
'width' => '90',
|
| 95 |
+
'index' => 'billing_telephone'
|
| 96 |
+
));
|
| 97 |
+
|
| 98 |
+
$this->addColumn('billing_postcode', array(
|
| 99 |
+
'header' => Mage::helper('customer')->__('ZIP'),
|
| 100 |
+
'width' => '70',
|
| 101 |
+
'index' => 'billing_postcode',
|
| 102 |
+
));
|
| 103 |
+
|
| 104 |
+
$this->addColumn('mamut_id', array(
|
| 105 |
+
'header' => Mage::helper('customer')->__('Mamut Relation ID'),
|
| 106 |
+
'width' => '20px',
|
| 107 |
+
'index' => 'mamut_id_a',
|
| 108 |
+
'type' => 'text',
|
| 109 |
+
// 'renderer' => 'mshopb2b/renderers_mamutIDRenderer',
|
| 110 |
+
));
|
| 111 |
+
|
| 112 |
+
$contactOptions = array();
|
| 113 |
+
$contactOptions = Mage::helper('mshopb2b/contactgroup')->getOptionsForFilter();
|
| 114 |
+
$contactGroupFilter = 'mshopb2b/adminhtml_grid_filter_contactgroup';
|
| 115 |
+
|
| 116 |
+
$this->addColumn('mamut_contact_groups', array(
|
| 117 |
+
'header' => Mage::helper('customer')->__('Mamut Contact Group'),
|
| 118 |
+
'width' => '200px',
|
| 119 |
+
'index' => 'mamut_contact_groups',
|
| 120 |
+
'type' => 'options',
|
| 121 |
+
'options' => $contactOptions,
|
| 122 |
+
'filter' => $contactGroupFilter,
|
| 123 |
+
'renderer' => 'mshopb2b/renderers_mamutContactRenderer',
|
| 124 |
+
));
|
| 125 |
+
|
| 126 |
+
$this->addColumn('billing_company', array(
|
| 127 |
+
'header' => Mage::helper('customer')->__('Company'),
|
| 128 |
+
'width' => '70',
|
| 129 |
+
'index' => 'billing_company',
|
| 130 |
+
|
| 131 |
+
|
| 132 |
+
));
|
| 133 |
+
|
| 134 |
+
$this->addColumn('billing_country_id', array(
|
| 135 |
+
'header' => Mage::helper('customer')->__('Country'),
|
| 136 |
+
'width' => '80',
|
| 137 |
+
'type' => 'country',
|
| 138 |
+
'index' => 'billing_country_id',
|
| 139 |
+
));
|
| 140 |
+
|
| 141 |
+
$this->addColumn('billing_region', array(
|
| 142 |
+
'header' => Mage::helper('customer')->__('State/Province'),
|
| 143 |
+
'width' => '80',
|
| 144 |
+
'index' => 'billing_region',
|
| 145 |
+
));
|
| 146 |
+
|
| 147 |
+
$this->addColumn('customer_since', array(
|
| 148 |
+
'header' => Mage::helper('customer')->__('Customer Since'),
|
| 149 |
+
'type' => 'datetime',
|
| 150 |
+
'align' => 'center',
|
| 151 |
+
'index' => 'created_at',
|
| 152 |
+
'gmtoffset' => true
|
| 153 |
+
));
|
| 154 |
+
|
| 155 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
| 156 |
+
$this->addColumn('website_id', array(
|
| 157 |
+
'header' => Mage::helper('customer')->__('Website'),
|
| 158 |
+
'align' => 'center',
|
| 159 |
+
'width' => '80px',
|
| 160 |
+
'type' => 'options',
|
| 161 |
+
'options' => Mage::getSingleton('adminhtml/system_store')->getWebsiteOptionHash(true),
|
| 162 |
+
'index' => 'website_id',
|
| 163 |
+
));
|
| 164 |
+
}
|
| 165 |
+
|
| 166 |
+
$this->addColumn('action',
|
| 167 |
+
array(
|
| 168 |
+
'header' => Mage::helper('customer')->__('Action'),
|
| 169 |
+
'width' => '90',
|
| 170 |
+
'type' => 'action',
|
| 171 |
+
'getter' => 'getId',
|
| 172 |
+
'actions' => array(
|
| 173 |
+
array(
|
| 174 |
+
'caption' => Mage::helper('customer')->__('Edit'),
|
| 175 |
+
'url' => array('base'=> '*/*/edit'),
|
| 176 |
+
'field' => 'id'
|
| 177 |
+
)
|
| 178 |
+
),
|
| 179 |
+
'filter' => false,
|
| 180 |
+
'sortable' => false,
|
| 181 |
+
'index' => 'stores',
|
| 182 |
+
'is_system' => true,
|
| 183 |
+
));
|
| 184 |
+
|
| 185 |
+
$this->addExportType('*/*/exportCsv', Mage::helper('customer')->__('CSV'));
|
| 186 |
+
$this->addExportType('*/*/exportXml', Mage::helper('customer')->__('Excel XML'));
|
| 187 |
+
return parent::_prepareColumns();
|
| 188 |
+
}
|
| 189 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/EcomwisePromoCatalogEditTab.php
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*
|
| 4 |
+
*
|
| 5 |
+
* Catalog rule edit tab form overide.
|
| 6 |
+
* Mamut ID field is added
|
| 7 |
+
* @author
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
class Ecomwise_MshopB2B_Block_Adminhtml_EcomwisePromoCatalogEditTab extends Mage_Adminhtml_Block_Promo_Catalog_Edit_Tab_Main{
|
| 11 |
+
|
| 12 |
+
protected function _prepareForm(){
|
| 13 |
+
$parent = parent::_prepareForm();
|
| 14 |
+
|
| 15 |
+
$parent_form = $parent->getForm();
|
| 16 |
+
|
| 17 |
+
return $parent_form;
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
protected function _toHtml(){
|
| 21 |
+
$parent_html = parent::_toHtml();
|
| 22 |
+
return $parent_html;
|
| 23 |
+
}
|
| 24 |
+
|
| 25 |
+
public function getRuleCustomers(){
|
| 26 |
+
|
| 27 |
+
$customers_rows = array();
|
| 28 |
+
$current_rule = Mage::registry('current_promo_catalog_rule');
|
| 29 |
+
|
| 30 |
+
if ($current_rule->getId()){
|
| 31 |
+
$main_resurce = Mage::getSingleton('core/resource');
|
| 32 |
+
$rules_table = $main_resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 33 |
+
|
| 34 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 35 |
+
|
| 36 |
+
$query = $connection ->select()
|
| 37 |
+
->from($rules_table, array('customer_id'))
|
| 38 |
+
->where('rule_id = '. $current_rule->getId());
|
| 39 |
+
|
| 40 |
+
$customers_rows = $connection->fetchCol($query);
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
$customers_list = array();
|
| 44 |
+
|
| 45 |
+
if ($customers_rows){
|
| 46 |
+
$customer_collection = Mage::getResourceModel('customer/customer_collection')
|
| 47 |
+
->addNameToSelect()
|
| 48 |
+
->addAttributeToFilter('entity_id', $customers_rows)
|
| 49 |
+
->load();
|
| 50 |
+
|
| 51 |
+
foreach ($customer_collection as $customer){
|
| 52 |
+
$customer_name = $customer->getName() . ' - ' . $customer->getEmail();
|
| 53 |
+
$customers_array = array('value'=>$customer->getId(),'label'=>$customer_name);
|
| 54 |
+
$customer_list[] = $customers_array;
|
| 55 |
+
}
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
return $customer_list;
|
| 59 |
+
}
|
| 60 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/EcomwisePromoCatalogGrid.php
ADDED
|
@@ -0,0 +1,222 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
*Catolog promotions grid override.
|
| 4 |
+
* mamuit id, mamut rule id, customer ids filds are added
|
| 5 |
+
*
|
| 6 |
+
*/
|
| 7 |
+
|
| 8 |
+
class Ecomwise_MshopB2B_Block_Adminhtml_EcomwisePromoCatalogGrid extends Mage_Adminhtml_Block_Widget_Grid{
|
| 9 |
+
|
| 10 |
+
public function __construct(){
|
| 11 |
+
parent::__construct();
|
| 12 |
+
$this->setId('promo_catalog_grid');
|
| 13 |
+
$this->setDefaultSort('name');
|
| 14 |
+
$this->setDefaultDir('ASC');
|
| 15 |
+
$this->setSaveParametersInSession(true);
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
protected function _prepareCollection() {
|
| 19 |
+
|
| 20 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 21 |
+
$table_name = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 22 |
+
$table_customermapping = $resurce->getTableName('ecomwise_customermamut_mapping');
|
| 23 |
+
$customer_table = $resurce->getTableName('customer_entity');
|
| 24 |
+
$cutomerGroups = $resurce->getTableName('catalogrule_customer_group');
|
| 25 |
+
$collection = Mage::getResourceModel('catalogrule/rule_collection');
|
| 26 |
+
$collection->getSelect()->joinLeft(array('mapping' => $table_name), 'main_table.rule_id = mapping.rule_id', array('mapping.mamut_id', 'mapping.mamut_rule_id'));
|
| 27 |
+
$collection->getSelect()->joinLeft(array('mappingCustomer' => $table_customermapping), 'mapping.mamut_id = mappingCustomer.mamut_id', array('mappingCustomer.customer_id'));
|
| 28 |
+
$collection->getSelect()->joinLeft(array('customer' => $customer_table), 'mappingCustomer.customer_id = customer.entity_id', array('customer.email'));
|
| 29 |
+
|
| 30 |
+
if(version_compare(Mage::getVersion(),'1.7.0.0','>=')){
|
| 31 |
+
$collection->getSelect()->joinLeft(array('cgroups' => $cutomerGroups),'main_table.rule_id = cgroups.rule_id',array('*'));
|
| 32 |
+
}
|
| 33 |
+
$collection->getSelect()->group('main_table.rule_id');
|
| 34 |
+
|
| 35 |
+
$this->setCollection($collection);
|
| 36 |
+
return parent::_prepareCollection();
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
protected function _prepareColumns(){
|
| 42 |
+
$this->addColumn('rule_id', array(
|
| 43 |
+
'header' => Mage::helper('catalogrule')->__('ID'),
|
| 44 |
+
'align' =>'right',
|
| 45 |
+
'width' => '50px',
|
| 46 |
+
'index' => 'rule_id',
|
| 47 |
+
'filter_index'=>'main_table.rule_id',
|
| 48 |
+
));
|
| 49 |
+
|
| 50 |
+
$this->addColumn('name', array(
|
| 51 |
+
'header' => Mage::helper('catalogrule')->__('Rule Name'),
|
| 52 |
+
'align' =>'left',
|
| 53 |
+
'index' => 'name',
|
| 54 |
+
));
|
| 55 |
+
|
| 56 |
+
$this->addColumn('from_date', array(
|
| 57 |
+
'header' => Mage::helper('catalogrule')->__('Date Start'),
|
| 58 |
+
'align' => 'left',
|
| 59 |
+
'width' => '120px',
|
| 60 |
+
'type' => 'date',
|
| 61 |
+
'index' => 'from_date',
|
| 62 |
+
));
|
| 63 |
+
|
| 64 |
+
$this->addColumn('to_date', array(
|
| 65 |
+
'header' => Mage::helper('catalogrule')->__('Date Expire'),
|
| 66 |
+
'align' => 'left',
|
| 67 |
+
'width' => '120px',
|
| 68 |
+
'type' => 'date',
|
| 69 |
+
'default' => '--',
|
| 70 |
+
'index' => 'to_date',
|
| 71 |
+
));
|
| 72 |
+
|
| 73 |
+
$this->addColumn('is_active', array(
|
| 74 |
+
'header' => Mage::helper('catalogrule')->__('Status'),
|
| 75 |
+
'align' => 'left',
|
| 76 |
+
'width' => '80px',
|
| 77 |
+
'index' => 'is_active',
|
| 78 |
+
'type' => 'options',
|
| 79 |
+
'options' => array(
|
| 80 |
+
1 => 'Active',
|
| 81 |
+
0 => 'Inactive',
|
| 82 |
+
),
|
| 83 |
+
));
|
| 84 |
+
|
| 85 |
+
$this->addColumn('mamut_id', array(
|
| 86 |
+
'header' => Mage::helper('catalogrule')->__('Mamut Relation ID'),
|
| 87 |
+
'align' =>'right',
|
| 88 |
+
'width' => '50px',
|
| 89 |
+
'index' => 'mamut_id',
|
| 90 |
+
));
|
| 91 |
+
|
| 92 |
+
$this->addColumn('mamut_rule_id', array(
|
| 93 |
+
'header' => Mage::helper('catalogrule')->__('Mamut Rule ID'),
|
| 94 |
+
'align' =>'right',
|
| 95 |
+
'width' => '50px',
|
| 96 |
+
'index' => 'mamut_rule_id',
|
| 97 |
+
));
|
| 98 |
+
|
| 99 |
+
$resurce_model = Mage::getModel('mshopb2b/catalogpromotions');
|
| 100 |
+
$customers = $resurce_model->get_customers();
|
| 101 |
+
|
| 102 |
+
$customer_groups = $resurce_model->get_customer_groups();
|
| 103 |
+
if(version_compare(Mage::getVersion(),'1.7.0.0','>=')){
|
| 104 |
+
$this->addColumn('customer_group_id', array(
|
| 105 |
+
'header' => Mage::helper('salesrule')->__('Customer Groups'),
|
| 106 |
+
'align' => 'left',
|
| 107 |
+
'width' => '120px',
|
| 108 |
+
'index' => 'customer_group_id',
|
| 109 |
+
'renderer' => 'mshopb2b/renderers_gridCatalogRenderer',
|
| 110 |
+
'filter' => 'mshopb2b/renderers_gridCatalogFilterCustomerGroup',
|
| 111 |
+
'options' => $customer_groups,
|
| 112 |
+
));
|
| 113 |
+
}else{
|
| 114 |
+
$this->addColumn('customer_group_ids', array(
|
| 115 |
+
'header' => Mage::helper('salesrule')->__('Customer Groups'),
|
| 116 |
+
'align' => 'left',
|
| 117 |
+
'width' => '120px',
|
| 118 |
+
'index' => 'customer_group_ids',
|
| 119 |
+
'renderer' => 'mshopb2b/renderers_gridCatalogRenderer',
|
| 120 |
+
'filter' => 'mshopb2b/renderers_gridCatalogFilterCustomerGroup',
|
| 121 |
+
'options' => $customer_groups,
|
| 122 |
+
));
|
| 123 |
+
}
|
| 124 |
+
|
| 125 |
+
/*$this->addColumn('customer_ids', array(
|
| 126 |
+
'header' => Mage::helper('salesrule')->__('Individual Customers'),
|
| 127 |
+
'align' => 'left',
|
| 128 |
+
'width' => '260px',
|
| 129 |
+
'index' => 'mapping.mamut_id',
|
| 130 |
+
'renderer' => 'mshopb2b/renderers_gridCatalogCustomer',
|
| 131 |
+
'filter' => 'adminhtml/widget_grid_column_filter_select',
|
| 132 |
+
'options' => $customers,
|
| 133 |
+
));*/
|
| 134 |
+
$this->addColumn('email', array(
|
| 135 |
+
'header' => Mage::helper('salesrule')->__('Individual Customers'),
|
| 136 |
+
'align' => 'left',
|
| 137 |
+
'width' => '260px',
|
| 138 |
+
//'index' => 'mapping.mamut_id',
|
| 139 |
+
'index' => 'email',
|
| 140 |
+
'renderer' => 'mshopb2b/renderers_gridCatalogCustomer',
|
| 141 |
+
//'filter' => 'adminhtml/widget_grid_column_filter_select',
|
| 142 |
+
//'options' => $customers,
|
| 143 |
+
));
|
| 144 |
+
|
| 145 |
+
$this->addColumn('sort_order', array(
|
| 146 |
+
'header' => Mage::helper('salesrule')->__('Priority'),
|
| 147 |
+
'width' => '100px',
|
| 148 |
+
'align' => 'right',
|
| 149 |
+
'index' => 'sort_order',
|
| 150 |
+
));
|
| 151 |
+
|
| 152 |
+
return parent::_prepareColumns();
|
| 153 |
+
}
|
| 154 |
+
|
| 155 |
+
public function getRowUrl($row){
|
| 156 |
+
return $this->getUrl('*/*/edit', array('id' => $row->getRuleId()));
|
| 157 |
+
}
|
| 158 |
+
|
| 159 |
+
protected function _afterLoadCollection(){
|
| 160 |
+
$collection = $this->getCollection();
|
| 161 |
+
|
| 162 |
+
$rules_ids = array();
|
| 163 |
+
|
| 164 |
+
foreach ($collection->load() as $rule){
|
| 165 |
+
if ($rule_id = $rule->getId()){
|
| 166 |
+
$rules_ids[] = $rule_id;
|
| 167 |
+
}
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
+
$customers_to_rule = array();
|
| 171 |
+
if ($rules_ids){
|
| 172 |
+
|
| 173 |
+
//$customers_to_rule = array();
|
| 174 |
+
|
| 175 |
+
$resurce_customers = Mage::getModel('mshopb2b/catalogpromotions');
|
| 176 |
+
$customers = $resurce_customers->get_customers();
|
| 177 |
+
|
| 178 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 179 |
+
$mapping_table = $resurce->getTableName('ecomwise_customermamut_mapping');
|
| 180 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 181 |
+
|
| 182 |
+
foreach($rules_ids as $rule_id){
|
| 183 |
+
$mamut_id = $resurce_customers->getMamutId($rule_id);
|
| 184 |
+
|
| 185 |
+
if($mamut_id){
|
| 186 |
+
$result = $connection->query('SELECT * FROM '.$mapping_table.'
|
| 187 |
+
WHERE mamut_id = '.$mamut_id.'
|
| 188 |
+
');
|
| 189 |
+
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
|
| 190 |
+
|
| 191 |
+
if($rows){
|
| 192 |
+
foreach($rows as $row){
|
| 193 |
+
|
| 194 |
+
if (isset($customers[$row['customer_id']])){
|
| 195 |
+
$customers_to_rule[$rule_id][$row['customer_id']] = $customers[$row['customer_id']];
|
| 196 |
+
}
|
| 197 |
+
}
|
| 198 |
+
}
|
| 199 |
+
}
|
| 200 |
+
}
|
| 201 |
+
}
|
| 202 |
+
Mage::register('customerpromotions_catalog_rule_customers', $customers_to_rule);
|
| 203 |
+
return parent::_afterLoadCollection();
|
| 204 |
+
}
|
| 205 |
+
|
| 206 |
+
private function getMamutId($rule_id){
|
| 207 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 208 |
+
$mapping_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 209 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 210 |
+
|
| 211 |
+
$result = $connection->query('SELECT * FROM '.$mapping_table.'
|
| 212 |
+
WHERE rule_id = '.$rule_id.'
|
| 213 |
+
LIMIT 1');
|
| 214 |
+
$row = $result->fetch(PDO::FETCH_ASSOC);
|
| 215 |
+
|
| 216 |
+
if($row){
|
| 217 |
+
return $row['mamut_id'];
|
| 218 |
+
}else{
|
| 219 |
+
return false;
|
| 220 |
+
}
|
| 221 |
+
}
|
| 222 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/Grid/Filter/Contactgroup.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Adminhtml_Grid_Filter_Contactgroup extends Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Select
|
| 3 |
+
{
|
| 4 |
+
public function getCondition()
|
| 5 |
+
{
|
| 6 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 7 |
+
$customer_entity_text = $resurce->getTableName('customer_entity_text');
|
| 8 |
+
$mamut_contact_groups = $resurce->getTableName('ecomwise_mamut_contact_groups');
|
| 9 |
+
$cw = $resurce->getConnection('core_write');
|
| 10 |
+
|
| 11 |
+
$collection = Mage::registry('customer_c');
|
| 12 |
+
|
| 13 |
+
$result = $cw->fetchRow("SELECT mamut_contact_group_name FROM ".$mamut_contact_groups."
|
| 14 |
+
WHERE group_id =".$this->getValue()."");
|
| 15 |
+
|
| 16 |
+
$collection->addAttributeToFilter('mamut_contact_groups', array('like' => '%'.$result['mamut_contact_group_name'].'%'));
|
| 17 |
+
|
| 18 |
+
return null;
|
| 19 |
+
}
|
| 20 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Adminhtml/Sales/Order/Create/Shipping/Method/Form.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Ecomwise_MshopB2B_Block_Adminhtml_Sales_Order_Create_Shipping_Method_Form
|
| 4 |
+
extends Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method_Form
|
| 5 |
+
{
|
| 6 |
+
public function getShippingRates()
|
| 7 |
+
{
|
| 8 |
+
if (empty($this->_rates)) {
|
| 9 |
+
$groups = $this->getAddress()->getGroupedAllShippingRates();
|
| 10 |
+
/*
|
| 11 |
+
if (!empty($groups)) {
|
| 12 |
+
|
| 13 |
+
$ratesFilter = new Varien_Filter_Object_Grid();
|
| 14 |
+
$ratesFilter->addFilter($this->getStore()->getPriceFilter(), 'price');
|
| 15 |
+
|
| 16 |
+
foreach ($groups as $code => $groupItems) {
|
| 17 |
+
$groups[$code] = $ratesFilter->filter($groupItems);
|
| 18 |
+
}
|
| 19 |
+
}
|
| 20 |
+
*/
|
| 21 |
+
$temp = array();
|
| 22 |
+
foreach($groups as $code => $_rates)
|
| 23 |
+
{
|
| 24 |
+
if($code == "mamut_shipping") continue;
|
| 25 |
+
$temp[$code] = $_rates;
|
| 26 |
+
}
|
| 27 |
+
return $this->_rates = $temp;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
$temp = $this->_rates;
|
| 31 |
+
foreach($groups as $code => $_rates)
|
| 32 |
+
{
|
| 33 |
+
if($code == "mamut_shipping") continue;
|
| 34 |
+
$temp[$code] = $_rates;
|
| 35 |
+
}
|
| 36 |
+
$this->_rates = $temp;
|
| 37 |
+
return $this->_rates;
|
| 38 |
+
}
|
| 39 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Customerattribute/Helper/Mamutgroups.php
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Magento
|
| 4 |
+
*
|
| 5 |
+
* NOTICE OF LICENSE
|
| 6 |
+
*
|
| 7 |
+
* This source file is subject to the Open Software License (OSL 3.0)
|
| 8 |
+
* that is bundled with this package in the file LICENSE.txt.
|
| 9 |
+
* It is also available through the world-wide-web at this URL:
|
| 10 |
+
* http://opensource.org/licenses/osl-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 Mage
|
| 22 |
+
* @package Mage_Adminhtml
|
| 23 |
+
* @copyright Copyright (c) 2011 Magento Inc. (http://www.magentocommerce.com)
|
| 24 |
+
* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
|
| 25 |
+
*/
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
/**
|
| 29 |
+
* Adminhtml additional helper block for sort by
|
| 30 |
+
*
|
| 31 |
+
* @category Mage
|
| 32 |
+
* @package Mage_Adminhtml
|
| 33 |
+
* @author Magento Core Team <core@magentocommerce.com>
|
| 34 |
+
*/
|
| 35 |
+
class Ecomwise_MshopB2B_Block_Customerattribute_Helper_Mamutgroups
|
| 36 |
+
extends Varien_Data_Form_Element_Multiselect
|
| 37 |
+
{
|
| 38 |
+
/**
|
| 39 |
+
* Retrieve Element HTML fragment
|
| 40 |
+
*
|
| 41 |
+
* @return string
|
| 42 |
+
*/
|
| 43 |
+
public function getElementHtml()
|
| 44 |
+
{
|
| 45 |
+
$disabled = false;
|
| 46 |
+
if (!$this->getValue()) {
|
| 47 |
+
$this->setData('disabled', 'disabled');
|
| 48 |
+
$disabled = true;
|
| 49 |
+
}
|
| 50 |
+
$html = parent::getElementHtml();
|
| 51 |
+
$htmlId = 'use_config_' . $this->getHtmlId();
|
| 52 |
+
$html .= '<input id="'.$htmlId.'" name="use_config[]" value="' . $this->getId() . '"';
|
| 53 |
+
$html .= ($disabled ? ' checked="checked"' : '');
|
| 54 |
+
|
| 55 |
+
if ($this->getReadonly()) {
|
| 56 |
+
$html .= ' disabled="disabled"';
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
$html .= ' onclick="toggleValueElements(this, this.parentNode);" class="checkbox" type="checkbox" />';
|
| 60 |
+
|
| 61 |
+
$html .= ' <label for="'.$htmlId.'" class="normal">'
|
| 62 |
+
. Mage::helper('adminhtml')->__('Use All Available Attributes').'</label>';
|
| 63 |
+
$html .= '<script type="text/javascript">toggleValueElements($(\''.$htmlId.'\'), $(\''.$htmlId.'\').parentNode);</script>';
|
| 64 |
+
|
| 65 |
+
return $html;
|
| 66 |
+
}
|
| 67 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/CompanyRenderer.php
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_companyRenderer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
|
| 3 |
+
|
| 4 |
+
public function render(Varien_Object $row){
|
| 5 |
+
$customer_id = $row->getData('entity_id');
|
| 6 |
+
|
| 7 |
+
$customer = Mage::getModel('customer/customer')->load($customer_id);
|
| 8 |
+
$customerAddressId = $customer->getDefaultBilling();
|
| 9 |
+
if ($customerAddressId){
|
| 10 |
+
$address = Mage::getModel('customer/address')->load($customerAddressId);
|
| 11 |
+
return $address->getData('company');
|
| 12 |
+
}else{
|
| 13 |
+
return null;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
|
| 18 |
+
}
|
| 19 |
+
}
|
| 20 |
+
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogCustomer.php
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_GridCatalogCustomer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
|
| 3 |
+
|
| 4 |
+
public function render(Varien_Object $row){
|
| 5 |
+
|
| 6 |
+
$customers = Mage::registry('customerpromotions_catalog_rule_customers');
|
| 7 |
+
$rule_id = $row->getData('rule_id');
|
| 8 |
+
if ($rule_id && $customers && isset($customers[$rule_id]) ){
|
| 9 |
+
$number_of_customers = 10;
|
| 10 |
+
|
| 11 |
+
$more_than_limit = false;
|
| 12 |
+
|
| 13 |
+
if (sizeof($customers[$rule_id]) > $number_of_customers){
|
| 14 |
+
$rule_customers = array_slice($customers[$rule_id], 0, $number_of_customers);
|
| 15 |
+
$more_than_limit = true;
|
| 16 |
+
}
|
| 17 |
+
else {
|
| 18 |
+
$rule_customers = $customers[$rule_id];
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
$html = implode('<br/>', $rule_customers);
|
| 22 |
+
|
| 23 |
+
if ($more_than_limit){
|
| 24 |
+
$html .= '<br/>...';
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
return $html;
|
| 28 |
+
|
| 29 |
+
}else{
|
| 30 |
+
return ' ';
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogFilterCustomer.php
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_GridCatalogFilterCustomer extends Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Select{
|
| 3 |
+
|
| 4 |
+
public function getCondition(){
|
| 5 |
+
if (is_null($this->getValue())) {
|
| 6 |
+
return null;
|
| 7 |
+
}
|
| 8 |
+
//return array('mapping.mamut_id' => 1011);
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
?>
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogFilterCustomerGroup.php
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_GridCatalogFilterCustomerGroup extends Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Select{
|
| 3 |
+
|
| 4 |
+
public function getCondition(){
|
| 5 |
+
if (is_null($this->getValue())) {
|
| 6 |
+
return null;
|
| 7 |
+
}
|
| 8 |
+
return array('finset' => $this->getValue());
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
?>
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/GridCatalogRenderer.php
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_GridCatalogRenderer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
|
| 3 |
+
|
| 4 |
+
public function render(Varien_Object $row){
|
| 5 |
+
if(version_compare(Mage::getVersion(),'1.7.0.0','>=')){
|
| 6 |
+
return $this->render17($row);
|
| 7 |
+
}else{
|
| 8 |
+
return $this->renderBase($row);
|
| 9 |
+
}
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
private function render17(Varien_Object $row){
|
| 14 |
+
$customers = array();
|
| 15 |
+
$resource = Mage::getSingleton('core/resource');
|
| 16 |
+
$cr = Mage::getSingleton('core/resource')->getConnection('core_read');
|
| 17 |
+
$cw = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 18 |
+
$table = $resource->getTableName('catalogrule_customer_group');
|
| 19 |
+
$tableGroups = $resource->getTableName('catalogrule_customer_group');
|
| 20 |
+
|
| 21 |
+
$query = $cr ->select()
|
| 22 |
+
->from($table, array('customer_group_id'))
|
| 23 |
+
->where('rule_id = ?', $row->getData('rule_id'));
|
| 24 |
+
|
| 25 |
+
$rows = $cr->fetchCol($query);
|
| 26 |
+
|
| 27 |
+
$groups ="";
|
| 28 |
+
foreach($rows as $row){
|
| 29 |
+
$group = Mage::getModel('customer/group')->load($row);
|
| 30 |
+
$groups.= $group->getCustomerGroupCode()."</br>";
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
return $groups;
|
| 34 |
+
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
private function renderBase(Varien_Object $row){
|
| 38 |
+
$groups = $row->getData($this->getColumn()->getIndex());
|
| 39 |
+
|
| 40 |
+
if ($groups || $groups == '0'){
|
| 41 |
+
|
| 42 |
+
$customerpromotions_model = Mage::getModel('mshopb2b/catalogpromotions');
|
| 43 |
+
$customer_groups = $customerpromotions_model->get_customer_groups();
|
| 44 |
+
|
| 45 |
+
$group_names = array();
|
| 46 |
+
foreach ($groups as $group_id){
|
| 47 |
+
|
| 48 |
+
if (isset($customer_groups[$group_id])){
|
| 49 |
+
$group_names[] = $customer_groups[$group_id];
|
| 50 |
+
}
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
$html = implode(', ', $group_names);
|
| 54 |
+
|
| 55 |
+
return $html;
|
| 56 |
+
}
|
| 57 |
+
else {
|
| 58 |
+
return ' ';
|
| 59 |
+
}
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/MamutContactRenderer.php
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_mamutContactRenderer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
|
| 3 |
+
public function render(Varien_Object $row)
|
| 4 |
+
{
|
| 5 |
+
|
| 6 |
+
$contactGroups = $row['mamut_contact_groups'];
|
| 7 |
+
$contactGroupsHtml = '';
|
| 8 |
+
$groups = explode(',',$contactGroups);
|
| 9 |
+
|
| 10 |
+
foreach ($groups as $group){
|
| 11 |
+
if($group){
|
| 12 |
+
$contactGroupsHtml .= '<div style="font-size: 90%; margin-bottom: 8px; border-bottom: 1px dotted #bcbcbc;">' . $group . '</div>';
|
| 13 |
+
}
|
| 14 |
+
}
|
| 15 |
+
return $contactGroupsHtml;
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
|
app/code/community/Ecomwise/MshopB2B/Block/Renderers/MamutIDRenderer.php
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Block_Renderers_mamutIDRenderer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract{
|
| 3 |
+
|
| 4 |
+
public function render(Varien_Object $row){
|
| 5 |
+
$customer_id = $row->getData('entity_id');
|
| 6 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 7 |
+
|
| 8 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 9 |
+
$mapping_table = $resurce->getTableName('ecomwise_customermamut_mapping');
|
| 10 |
+
$query = $connection ->select()
|
| 11 |
+
->from($mapping_table, array('mamut_id'))
|
| 12 |
+
->where('customer_id = ?', $customer_id)
|
| 13 |
+
->limit(1);
|
| 14 |
+
$row_mamut = $connection->fetchRow($query);
|
| 15 |
+
if($row_mamut){
|
| 16 |
+
return $row_mamut['mamut_id'];
|
| 17 |
+
|
| 18 |
+
}else{
|
| 19 |
+
return 'NULL';
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
}
|
| 23 |
+
}
|
| 24 |
+
|
app/code/community/Ecomwise/MshopB2B/Block/System/Config/Version.php
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_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_MshopB2B->version;
|
| 6 |
+
}
|
| 7 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Helper/Contactgroup.php
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Helper_Contactgroup extends Mage_Core_Helper_Abstract
|
| 3 |
+
{
|
| 4 |
+
public function getOptionsForFilter()
|
| 5 |
+
{
|
| 6 |
+
$resource = Mage::getSingleton('core/resource');
|
| 7 |
+
$reader = $resource->getConnection('core_read');
|
| 8 |
+
$tablename = $resource->gettableName('ecomwise_mamut_contact_groups');
|
| 9 |
+
|
| 10 |
+
$rows = $reader->fetchAll("SELECT * FROM ".$tablename." WHERE mamut_contact_group_name !='MAMUT NOT LOGGED IN'");
|
| 11 |
+
if($rows){
|
| 12 |
+
foreach ($rows as $row){
|
| 13 |
+
$options[$row['group_id']] = $row['mamut_contact_group_name'];
|
| 14 |
+
}
|
| 15 |
+
return $options;
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Helper/Data.php
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Helper_Data extends Mage_Adminhtml_Helper_Data{
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
public function log($method, $varname, $data){
|
| 6 |
+
|
| 7 |
+
Mage::log("---------------------------------------------------------------------------------", null, "mshopb2b.log");
|
| 8 |
+
|
| 9 |
+
Mage::log("Method name: ", null, "mshopb2b.log");
|
| 10 |
+
Mage::log($method, null, "mshopb2b.log");
|
| 11 |
+
Mage::log($varname, null, "mshopb2b.log");
|
| 12 |
+
Mage::log($data, null, "mshopb2b.log");
|
| 13 |
+
|
| 14 |
+
Mage::log("---------------------------------------------------------------------------------", null, "mshopb2b.log");
|
| 15 |
+
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
public function getRulesForCustomer($customer_id){
|
| 19 |
+
|
| 20 |
+
$rule_ids = array();
|
| 21 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 22 |
+
|
| 23 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 24 |
+
$mapping_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 25 |
+
|
| 26 |
+
$result_mamut_id = $connection->fetchRow("select mamut_id from ".$resurce->getTableName('ecomwise_customermamut_mapping')."
|
| 27 |
+
where customer_id=?", $customer_id);
|
| 28 |
+
$result_rule_id = $connection->fetchAll("select rule_id from ".$resurce->getTableName('ecomwise_catalogpromotions_mapping')."
|
| 29 |
+
where mamut_id=?", $result_mamut_id['mamut_id']);
|
| 30 |
+
|
| 31 |
+
foreach($result_rule_id as $row){
|
| 32 |
+
$rule_ids[] = $row['rule_id'];
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
|
| 36 |
+
return $rule_ids;
|
| 37 |
+
}
|
| 38 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Credit/Api.php
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Api_Credit_Api extends Mage_Api_Model_Resource_Abstract{
|
| 3 |
+
|
| 4 |
+
public function block($email, $website_id = null){
|
| 5 |
+
if($email == '' || $email == null){
|
| 6 |
+
$this->_fault("email_not_sent");
|
| 7 |
+
|
| 8 |
+
}
|
| 9 |
+
|
| 10 |
+
//return true;
|
| 11 |
+
if($website_id == null ){
|
| 12 |
+
foreach (Mage::app()->getWebsites() as $website) {
|
| 13 |
+
$website_id = $website->getId();
|
| 14 |
+
break;
|
| 15 |
+
}
|
| 16 |
+
}
|
| 17 |
+
|
| 18 |
+
//return $email;
|
| 19 |
+
|
| 20 |
+
try{
|
| 21 |
+
$customer = Mage::getModel("customer/customer")->setWebsiteId($website_id)->loadByEmail($email);
|
| 22 |
+
}catch(Exception $ex){
|
| 23 |
+
return $this->_fault('invalid_data');
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
if($customer->getEntityId() == null){
|
| 27 |
+
|
| 28 |
+
$this->_fault("customer_not_exists");
|
| 29 |
+
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
try{
|
| 34 |
+
$customer->setMshopBloked("1");
|
| 35 |
+
$customer->save();
|
| 36 |
+
|
| 37 |
+
}catch(Extension $ex){
|
| 38 |
+
$this->_fault("invalid_data");
|
| 39 |
+
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
return true;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
public function unblock($email, $website_id = null){
|
| 46 |
+
if($email == '' || $email == null){
|
| 47 |
+
$this->_fault("email_not_sent");
|
| 48 |
+
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
+
if($website_id == null ){
|
| 52 |
+
foreach (Mage::app()->getWebsites() as $website) {
|
| 53 |
+
$website_id = $website->getId();
|
| 54 |
+
break;
|
| 55 |
+
}
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
try{
|
| 59 |
+
$customer = Mage::getModel("customer/customer")->setWebsiteId($website_id)->loadByEmail($email);
|
| 60 |
+
}catch(Exception $ex){
|
| 61 |
+
return $this->_fault('invalid_data');
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
if($customer->getEntityId() == null){
|
| 65 |
+
$this->_fault("customer_not_exists");
|
| 66 |
+
}
|
| 67 |
+
try{
|
| 68 |
+
$customer->setMshopBloked(0);
|
| 69 |
+
$customer->save();
|
| 70 |
+
return true;
|
| 71 |
+
}catch(Extension $ex){
|
| 72 |
+
$this->_fault($ex->getMessage());
|
| 73 |
+
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
}
|
| 77 |
+
|
| 78 |
+
|
| 79 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Credit/Api/V2.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Api_Credit_Api_V2 extends Ecomwise_MshopB2B_Model_Api_Credit_Api{
|
| 3 |
+
|
| 4 |
+
|
| 5 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Customer/Api.php
ADDED
|
@@ -0,0 +1,450 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Ecomwise_MshopB2B_Model_Api_Customer_Api extends Mage_Api_Model_Resource_Abstract{
|
| 4 |
+
|
| 5 |
+
protected $resource;
|
| 6 |
+
protected $reader;
|
| 7 |
+
protected $writer;
|
| 8 |
+
|
| 9 |
+
protected function construct(){
|
| 10 |
+
$this->resource = Mage::getSingleton('core/resource');
|
| 11 |
+
$this->reader = $this->resource->getConnection('core_read');
|
| 12 |
+
$this->writer = $this->resource->getConnection('core_write');
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
public function updatePreferedLocale($mamutId, $input)
|
| 16 |
+
{
|
| 17 |
+
$mapping = array(
|
| 18 |
+
'NO' => 'nn_NO',
|
| 19 |
+
'SV' => 'sv_SE',
|
| 20 |
+
'DA' => 'da_DK',
|
| 21 |
+
'FI' => 'fi_FI',
|
| 22 |
+
'EN' => 'en_US',
|
| 23 |
+
'FR' => 'fr_FR',
|
| 24 |
+
'DE' => 'de_DE',
|
| 25 |
+
'ES' => 'es_ES',
|
| 26 |
+
'IT' => 'it_IT',
|
| 27 |
+
'PT' => 'pt_PT',
|
| 28 |
+
'EL' => 'el_GR',
|
| 29 |
+
'ZH' => 'zh_CN',
|
| 30 |
+
'CS' => 'cs_CZ',
|
| 31 |
+
'ID' => 'id_ID',
|
| 32 |
+
'HE' => 'he_IL',
|
| 33 |
+
'JA' => 'ja_JP',
|
| 34 |
+
'MS' => 'ms_MY',
|
| 35 |
+
'NL' => 'nl_NL',
|
| 36 |
+
'RU' => 'ru_RU',
|
| 37 |
+
'AR' => 'ar_SA',
|
| 38 |
+
'KO' => 'ko_KR',
|
| 39 |
+
'TH' => 'th_TH',
|
| 40 |
+
'TR' => 'tr_TR',
|
| 41 |
+
'IS' => 'is_IS'
|
| 42 |
+
);
|
| 43 |
+
|
| 44 |
+
$preferedLocale = 'en_US';
|
| 45 |
+
if($mapping[$input])
|
| 46 |
+
{
|
| 47 |
+
$preferedLocale = $mapping[$input];
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
$this->construct();
|
| 51 |
+
if($mamutId == 0 or $mamutId == null){
|
| 52 |
+
$this->_fault("customer_not_exists_for_mamut_id");
|
| 53 |
+
}
|
| 54 |
+
$customer_row = $this->reader->fetchRow("SELECT customer_id FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')."
|
| 55 |
+
WHERE mamut_id=?", $mamutId );
|
| 56 |
+
|
| 57 |
+
if($customer_row == null){
|
| 58 |
+
$this->_fault("customer_not_exists_for_mamut_id");
|
| 59 |
+
}
|
| 60 |
+
$customerId = $customer_row['customer_id'];
|
| 61 |
+
$customer = Mage::getModel('customer/customer')->load($customerId);
|
| 62 |
+
|
| 63 |
+
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'customer_language_locale');
|
| 64 |
+
|
| 65 |
+
if($attribute)
|
| 66 |
+
{
|
| 67 |
+
if($customer)
|
| 68 |
+
{
|
| 69 |
+
$customer->setCustomerLanguageLocale($preferedLocale);
|
| 70 |
+
try{
|
| 71 |
+
$customer->save();
|
| 72 |
+
return true;
|
| 73 |
+
}catch(Exception $e){
|
| 74 |
+
return false;
|
| 75 |
+
}
|
| 76 |
+
}
|
| 77 |
+
return false;
|
| 78 |
+
}
|
| 79 |
+
return false;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
public function createCustomerGroup($groupName){
|
| 83 |
+
|
| 84 |
+
$customer_group = Mage::getModel('customer/group')->getCollection()->addFieldToFilter('customer_group_code', array('eq'=>$groupName));
|
| 85 |
+
|
| 86 |
+
if($customer_group->count() == 0){
|
| 87 |
+
|
| 88 |
+
Mage::getSingleton('customer/group')->setData(
|
| 89 |
+
array('customer_group_code' => $groupName,
|
| 90 |
+
'tax_class_id' => 3)
|
| 91 |
+
)->save();
|
| 92 |
+
|
| 93 |
+
}
|
| 94 |
+
return true;
|
| 95 |
+
}
|
| 96 |
+
|
| 97 |
+
public function assignCustomerToGroup($customerId, $groupId){
|
| 98 |
+
|
| 99 |
+
$customer = Mage::getModel('customer/customer')->load($customerId);
|
| 100 |
+
if(!$customer->getId()){
|
| 101 |
+
$this->_fault("unknown_mcustomer");
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
$group = Mage::getModel('customer/group')->load($groupId);
|
| 105 |
+
if(!$group->getId()){
|
| 106 |
+
$this->_fault("unknown_mgroup");
|
| 107 |
+
}
|
| 108 |
+
$customer->setGroupId($groupId);
|
| 109 |
+
$customer->save();
|
| 110 |
+
|
| 111 |
+
return true;
|
| 112 |
+
}
|
| 113 |
+
|
| 114 |
+
public function update($magentoCustomerId, $customerData, $addressBillingData, $addressShippingData){
|
| 115 |
+
$this->construct();
|
| 116 |
+
$customer_id = $magentoCustomerId;
|
| 117 |
+
|
| 118 |
+
if($customer_id != '' && $customer_id != null && Mage::getModel('customer/customer')->load($customer_id)->getId()){
|
| 119 |
+
$customerId = $customer_id;
|
| 120 |
+
}else{
|
| 121 |
+
$mamut_id = $customerData->mamut_id;
|
| 122 |
+
if($mamut_id == '' or $mamut_id == null){
|
| 123 |
+
$this->_fault("customer_not_exists_for_mamut_id");
|
| 124 |
+
}
|
| 125 |
+
$customer_row = $this->reader->fetchRow("SELECT customer_id FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')."
|
| 126 |
+
WHERE mamut_id=?", $mamut_id );
|
| 127 |
+
|
| 128 |
+
if($customer_row == null){
|
| 129 |
+
$this->_fault("customer_not_exists_for_mamut_id");
|
| 130 |
+
}
|
| 131 |
+
$customerId = $customer_row['customer_id'];
|
| 132 |
+
}
|
| 133 |
+
//$customerEntity = $customerData->customerEntity;
|
| 134 |
+
|
| 135 |
+
$customer = Mage::getModel('customer/customer')->load($customerId);
|
| 136 |
+
if(!$customer->getId()){
|
| 137 |
+
$this->_fault("mapped_customer_not_exists_for_mamut_id");
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
$mamut_contact_groups = $customerData->mamut_contact_groups;
|
| 141 |
+
if(is_array($mamut_contact_groups)){
|
| 142 |
+
$this->updateMamutContactGroups($customer, $mamut_contact_groups );
|
| 143 |
+
}
|
| 144 |
+
|
| 145 |
+
$response1 = Mage::getModel('customer/customer_api')->update($customerId,
|
| 146 |
+
array(
|
| 147 |
+
email=>$customerData->email,
|
| 148 |
+
firstname=>$customerData->firstname,
|
| 149 |
+
lastname=>$customerData->lastname,
|
| 150 |
+
password=>$customerData->password,
|
| 151 |
+
website_id=>$customerData->website_id,
|
| 152 |
+
store_id=>$customerData->store_id,
|
| 153 |
+
group_id=>$customerData->group_id,
|
| 154 |
+
taxvat=>$customerData->taxvat
|
| 155 |
+
)
|
| 156 |
+
);
|
| 157 |
+
if(!$response1){
|
| 158 |
+
$this->_fault("customer_information_update_failed");
|
| 159 |
+
}
|
| 160 |
+
|
| 161 |
+
//update default billing address
|
| 162 |
+
$billingAdr = $customer->getDefaultBillingAddress();
|
| 163 |
+
if($billingAdr){
|
| 164 |
+
$addrId = $billingAdr->getId();
|
| 165 |
+
$response2 = Mage::getModel('customer/address_api')->update($addrId,
|
| 166 |
+
array(
|
| 167 |
+
city=>$addressBillingData->city,
|
| 168 |
+
company=>$addressBillingData->company,
|
| 169 |
+
country_id=>$addressBillingData->country_id,
|
| 170 |
+
fax=>$addressBillingData->fax,
|
| 171 |
+
firstname=>$addressBillingData->firstname,
|
| 172 |
+
lastname=>$addressBillingData->lastname,
|
| 173 |
+
middlename=>$addressBillingData->middlename,
|
| 174 |
+
postcode=>$addressBillingData->postcode,
|
| 175 |
+
prefix=>$addressBillingData->prefix,
|
| 176 |
+
region_id=>$addressBillingData->region_id,
|
| 177 |
+
region=>$addressBillingData->region,
|
| 178 |
+
street=>$addressBillingData->street,
|
| 179 |
+
suffix=>$addressBillingData->suffix,
|
| 180 |
+
telephone=>$addressBillingData->telephone,
|
| 181 |
+
is_default_billing=>1,
|
| 182 |
+
//is_default_shipping=>1,
|
| 183 |
+
)
|
| 184 |
+
);
|
| 185 |
+
if(!$response2){
|
| 186 |
+
$this->_fault("address_information_update_failed");
|
| 187 |
+
}
|
| 188 |
+
}else{
|
| 189 |
+
$response2 = Mage::getModel('customer/address_api')->create($customerId,
|
| 190 |
+
array(
|
| 191 |
+
city=>$addressBillingData->city,
|
| 192 |
+
company=>$addressBillingData->company,
|
| 193 |
+
country_id=>$addressBillingData->country_id,
|
| 194 |
+
fax=>$addressBillingData->fax,
|
| 195 |
+
firstname=>$addressBillingData->firstname,
|
| 196 |
+
lastname=>$addressBillingData->lastname,
|
| 197 |
+
middlename=>$addressBillingData->middlename,
|
| 198 |
+
postcode=>$addressBillingData->postcode,
|
| 199 |
+
prefix=>$addressBillingData->prefix,
|
| 200 |
+
region_id=>$addressBillingData->region_id,
|
| 201 |
+
region=>$addressBillingData->region,
|
| 202 |
+
street=>$addressBillingData->street,
|
| 203 |
+
suffix=>$addressBillingData->suffix,
|
| 204 |
+
telephone=>$addressBillingData->telephone,
|
| 205 |
+
is_default_billing=>1,
|
| 206 |
+
//is_default_shipping=>1,
|
| 207 |
+
)
|
| 208 |
+
);
|
| 209 |
+
if(!$response2){
|
| 210 |
+
$this->_fault("address_information_update_failed");
|
| 211 |
+
}
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
+
//update default shipping address
|
| 215 |
+
$shippingAdr = $customer->getDefaultShippingAddress();
|
| 216 |
+
if($shippingAdr){
|
| 217 |
+
$addrId = $shippingAdr->getId();
|
| 218 |
+
$response3 = Mage::getModel('customer/address_api')->update($addrId,
|
| 219 |
+
array(
|
| 220 |
+
city=>$addressShippingData->city,
|
| 221 |
+
company=>$addressShippingData->company,
|
| 222 |
+
country_id=>$addressShippingData->country_id,
|
| 223 |
+
fax=>$addressShippingData->fax,
|
| 224 |
+
firstname=>$addressShippingData->firstname,
|
| 225 |
+
lastname=>$addressShippingData->lastname,
|
| 226 |
+
middlename=>$addressShippingData->middlename,
|
| 227 |
+
postcode=>$addressShippingData->postcode,
|
| 228 |
+
prefix=>$addressShippingData->prefix,
|
| 229 |
+
region_id=>$addressShippingData->region_id,
|
| 230 |
+
region=>$addressShippingData->region,
|
| 231 |
+
street=>$addressShippingData->street,
|
| 232 |
+
suffix=>$addressShippingData->suffix,
|
| 233 |
+
telephone=>$addressShippingData->telephone,
|
| 234 |
+
//is_default_billing=>1,
|
| 235 |
+
is_default_shipping=>1,
|
| 236 |
+
)
|
| 237 |
+
);
|
| 238 |
+
if(!$response3){
|
| 239 |
+
$this->_fault("address_information_update_failed");
|
| 240 |
+
}
|
| 241 |
+
}else{
|
| 242 |
+
$response3 = Mage::getModel('customer/address_api')->create($customerId,
|
| 243 |
+
array(
|
| 244 |
+
city=>$addressShippingData->city,
|
| 245 |
+
company=>$addressShippingData->company,
|
| 246 |
+
country_id=>$addressShippingData->country_id,
|
| 247 |
+
fax=>$addressShippingData->fax,
|
| 248 |
+
firstname=>$addressShippingData->firstname,
|
| 249 |
+
lastname=>$addressShippingData->lastname,
|
| 250 |
+
middlename=>$addressShippingData->middlename,
|
| 251 |
+
postcode=>$addressShippingData->postcode,
|
| 252 |
+
prefix=>$addressShippingData->prefix,
|
| 253 |
+
region_id=>$addressShippingData->region_id,
|
| 254 |
+
region=>$addressShippingData->region,
|
| 255 |
+
street=>$addressShippingData->street,
|
| 256 |
+
suffix=>$addressShippingData->suffix,
|
| 257 |
+
telephone=>$addressShippingData->telephone,
|
| 258 |
+
//is_default_billing=>1,
|
| 259 |
+
is_default_shipping=>1,
|
| 260 |
+
)
|
| 261 |
+
);
|
| 262 |
+
if(!$response3){
|
| 263 |
+
$this->_fault("address_information_update_failed");
|
| 264 |
+
}
|
| 265 |
+
}
|
| 266 |
+
return true;
|
| 267 |
+
}
|
| 268 |
+
|
| 269 |
+
|
| 270 |
+
public function create($customerData, $addressBillingData, $addressShippingData){
|
| 271 |
+
$this->construct();
|
| 272 |
+
$errors = $this->validateCustomerData($customerData, $addressBillingData, $addressShippingData);
|
| 273 |
+
|
| 274 |
+
if(count($errors) > 0){
|
| 275 |
+
$this->_fault("customer_create_incomplete_data", "Incomplete customer creation data. Missing parts: ".implode(', ',$errors));
|
| 276 |
+
|
| 277 |
+
}
|
| 278 |
+
$customer = Mage::getModel("customer/customer")->setWebsiteId($customerData->website_id)->loadByEmail($customerData->email);
|
| 279 |
+
if($customer->getId()){
|
| 280 |
+
$this->_fault("customer_create_customer_allready_exists");
|
| 281 |
+
}
|
| 282 |
+
$customerId = Mage::getModel('customer/customer_api')->create(array(
|
| 283 |
+
'email'=>$customerData->email,
|
| 284 |
+
'firstname'=>$customerData->firstname,
|
| 285 |
+
'lastname'=>$customerData->lastname,
|
| 286 |
+
'password'=>$customerData->password,
|
| 287 |
+
'website_id'=>$customerData->website_id,
|
| 288 |
+
'store_id'=>$customerData->store_id,
|
| 289 |
+
'group_id'=>$customerData->group_id,
|
| 290 |
+
'taxvat'=>$customerData->taxvat
|
| 291 |
+
));
|
| 292 |
+
if(!$customerId){
|
| 293 |
+
$this->_fault("customer_creation_failed");
|
| 294 |
+
}
|
| 295 |
+
|
| 296 |
+
$customer = Mage::getModel('customer/customer')->load($customerId);
|
| 297 |
+
|
| 298 |
+
|
| 299 |
+
$addressBillingData->is_default_billing = 1;
|
| 300 |
+
$response2 = Mage::getModel('customer/address_api_v2')->create($customerId, $addressBillingData);
|
| 301 |
+
|
| 302 |
+
|
| 303 |
+
$addressShippingData->is_default_shipping = 1;
|
| 304 |
+
$response3 = Mage::getModel('customer/address_api_v2')->create($customerId, $addressShippingData);
|
| 305 |
+
|
| 306 |
+
if(!$response2){
|
| 307 |
+
$this->_fault("address_creation_failed");
|
| 308 |
+
}
|
| 309 |
+
if(!$response3){
|
| 310 |
+
$this->_fault("address_creation_failed");
|
| 311 |
+
}
|
| 312 |
+
|
| 313 |
+
$mamut_contact_groups = $customerData->mamut_contact_groups;
|
| 314 |
+
if(is_array($mamut_contact_groups)){
|
| 315 |
+
|
| 316 |
+
$this->updateMamutContactGroups($customer, $mamut_contact_groups );
|
| 317 |
+
}
|
| 318 |
+
|
| 319 |
+
$setmamut = Mage::getModel('mshopb2b/api_mamut_api')->setMamutId($customerData->mamut_id, $customerId);
|
| 320 |
+
|
| 321 |
+
if(!$setmamut){
|
| 322 |
+
$this->_fault("mamut_id_not_set_for_customer");
|
| 323 |
+
}
|
| 324 |
+
|
| 325 |
+
return $customerId;
|
| 326 |
+
}
|
| 327 |
+
|
| 328 |
+
public function updatedSince($date){
|
| 329 |
+
|
| 330 |
+
$allCustomers = Mage::getModel('customer/customer')
|
| 331 |
+
->getCollection()
|
| 332 |
+
->addAttributeToSelect('updated_at')
|
| 333 |
+
->addAttributeToFilter('email', array("neq"=>''))
|
| 334 |
+
->addAttributeToFilter('updated_at', array('gt' => $date))
|
| 335 |
+
->joinField('mamut_id_alias','mshopb2b/mshopb2b','mamut_id','customer_id=entity_id',null,'left')
|
| 336 |
+
;
|
| 337 |
+
|
| 338 |
+
//return $allCustomers;
|
| 339 |
+
|
| 340 |
+
$cus_mamut_ids = array();
|
| 341 |
+
foreach ($allCustomers as $cus){
|
| 342 |
+
if($cus->getMamutIdAlias() != null){
|
| 343 |
+
$cus_mamut_ids[] = $cus->getMamutIdAlias() ;
|
| 344 |
+
}
|
| 345 |
+
}
|
| 346 |
+
return $cus_mamut_ids;
|
| 347 |
+
|
| 348 |
+
}
|
| 349 |
+
private function updateMamutContactGroups($customer, $mamut_contact_groups ){
|
| 350 |
+
|
| 351 |
+
$tablename = $this->resource->gettableName('ecomwise_mamut_contact_groups');
|
| 352 |
+
|
| 353 |
+
for($i =0; $i<count($mamut_contact_groups); $i++){
|
| 354 |
+
|
| 355 |
+
$group = trim($mamut_contact_groups[$i]);
|
| 356 |
+
$query = "SELECT * FROM ".$tablename." WHERE mamut_contact_group_name = '".$group."' ";
|
| 357 |
+
$row = $this->reader->fetchRow($query);
|
| 358 |
+
if(!$row){
|
| 359 |
+
|
| 360 |
+
$this->writer->query("INSERT INTO ".$tablename." (mamut_contact_group_name) values('".$group."')");
|
| 361 |
+
}
|
| 362 |
+
$mamut_contact_groups[$i] = $group;
|
| 363 |
+
}
|
| 364 |
+
$customer->setMamutContactGroups(implode(",", $mamut_contact_groups));
|
| 365 |
+
$customer->save();
|
| 366 |
+
|
| 367 |
+
return;
|
| 368 |
+
|
| 369 |
+
}
|
| 370 |
+
|
| 371 |
+
|
| 372 |
+
private function validateCustomerData($customerData, $billndAddress, $shippingAddress){
|
| 373 |
+
$errors = array();
|
| 374 |
+
|
| 375 |
+
|
| 376 |
+
if($customerData->email == null || $customerData->email == ''){
|
| 377 |
+
$errors [] = 'customer data:email';
|
| 378 |
+
}
|
| 379 |
+
if($customerData->firstname == null || $customerData->firstname == ''){
|
| 380 |
+
$errors [] = 'customer data:firstname';
|
| 381 |
+
}
|
| 382 |
+
if($customerData->lastname == null || $customerData->lastname == ''){
|
| 383 |
+
$errors [] = 'customer data:lastname';
|
| 384 |
+
}
|
| 385 |
+
if($customerData->website_id == null || $customerData->website_id == ''){
|
| 386 |
+
$errors [] = 'customer data:website_id';
|
| 387 |
+
}
|
| 388 |
+
if($customerData->group_id == null || $customerData->group_id == ''){
|
| 389 |
+
$errors [] = 'customer data:group_id';
|
| 390 |
+
}
|
| 391 |
+
if(Mage::getStoreConfig('customer/address/taxvat_show') == 'req'){
|
| 392 |
+
if($customerData->taxvat == null || $customerData->taxvat == ''){
|
| 393 |
+
$errors [] = 'customer data:taxvat';
|
| 394 |
+
}
|
| 395 |
+
}
|
| 396 |
+
|
| 397 |
+
|
| 398 |
+
if($billndAddress->firstname == null || $billndAddress->firstname == ''){
|
| 399 |
+
$errors [] = 'billing address:firstname';
|
| 400 |
+
}
|
| 401 |
+
if($billndAddress->lastname == null || $billndAddress->lastname == ''){
|
| 402 |
+
$errors [] = 'billing address:lastname';
|
| 403 |
+
}
|
| 404 |
+
if($billndAddress->street == null || $billndAddress->street == '' || count($billndAddress->street) == 0){
|
| 405 |
+
$errors [] = 'billing address:street';
|
| 406 |
+
}
|
| 407 |
+
if($billndAddress->city == null || $billndAddress->city == ''){
|
| 408 |
+
$errors [] = 'billing address:city';
|
| 409 |
+
}
|
| 410 |
+
if($billndAddress->country_id == null || $billndAddress->country_id == ''){
|
| 411 |
+
$errors [] = 'billing address:country_id';
|
| 412 |
+
}
|
| 413 |
+
if($billndAddress->postcode == null || $billndAddress->postcode == ''){
|
| 414 |
+
$errors [] = 'billing address:postcode';
|
| 415 |
+
}
|
| 416 |
+
if($billndAddress->telephone == null || $billndAddress->telephone == ''){
|
| 417 |
+
$errors [] = 'billing address:telephone';
|
| 418 |
+
}
|
| 419 |
+
|
| 420 |
+
if($shippingAddress->firstname == null || $shippingAddress->firstname == ''){
|
| 421 |
+
$errors [] = 'shipping address:firstname';
|
| 422 |
+
}
|
| 423 |
+
if($shippingAddress->lastname == null || $shippingAddress->lastname == ''){
|
| 424 |
+
$errors [] = 'shipping address:lastname';
|
| 425 |
+
}
|
| 426 |
+
if($shippingAddress->street == null || $shippingAddress->street == '' || count($shippingAddress->street) == 0){
|
| 427 |
+
$errors [] = 'shipping address:street';
|
| 428 |
+
}
|
| 429 |
+
if($shippingAddress->city == null || $shippingAddress->city == ''){
|
| 430 |
+
$errors [] = 'shipping address:city';
|
| 431 |
+
}
|
| 432 |
+
if($shippingAddress->country_id == null || $shippingAddress->country_id == ''){
|
| 433 |
+
$errors [] = 'shipping address:country_id';
|
| 434 |
+
}
|
| 435 |
+
if($shippingAddress->postcode == null || $shippingAddress->postcode == ''){
|
| 436 |
+
$errors [] = 'shipping address:postcode';
|
| 437 |
+
}
|
| 438 |
+
if($shippingAddress->telephone == null || $shippingAddress->telephone == ''){
|
| 439 |
+
$errors [] = 'shipping address:telephone';
|
| 440 |
+
}
|
| 441 |
+
|
| 442 |
+
|
| 443 |
+
return $errors;
|
| 444 |
+
|
| 445 |
+
}
|
| 446 |
+
|
| 447 |
+
|
| 448 |
+
}
|
| 449 |
+
|
| 450 |
+
?>
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Customer/Api/V2.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Ecomwise_MshopB2B_Model_Api_Customer_Api_V2 extends Ecomwise_MshopB2B_Model_Api_Customer_Api{
|
| 4 |
+
|
| 5 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Mamut/Api.php
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Api_Mamut_Api extends Mage_Api_Model_Resource_Abstract{
|
| 3 |
+
|
| 4 |
+
protected $resource;
|
| 5 |
+
protected $reader;
|
| 6 |
+
protected $writer;
|
| 7 |
+
|
| 8 |
+
protected function construct(){
|
| 9 |
+
$this->resource = Mage::getSingleton('core/resource');
|
| 10 |
+
$this->reader = $this->resource->getConnection('core_read');
|
| 11 |
+
$this->writer = $this->resource->getConnection('core_write');
|
| 12 |
+
}
|
| 13 |
+
|
| 14 |
+
public function setMamutId($mamutId, $customerId){
|
| 15 |
+
$this->construct();
|
| 16 |
+
|
| 17 |
+
if($mamutId == 0 or $mamutId == null or $customerId == 0 or $customerId == null){
|
| 18 |
+
$this->_fault("invalid_data_provided");
|
| 19 |
+
}
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
$customer = Mage::getModel("customer/customer")->load($customerId);
|
| 24 |
+
if(!$customer->getId()){
|
| 25 |
+
|
| 26 |
+
$this->_fault("magento_customer_not_exists");
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
$customer = $this->reader->fetchRow("SELECT customer_id FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')."
|
| 30 |
+
WHERE customer_id=?", $customerId );
|
| 31 |
+
if($customer != null){
|
| 32 |
+
$this->_fault("customer_id_allready_exists");
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
//$customermamut_mapping_row = $this->reader->fetchRow("SELECT customer_id, mamut_id FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')."
|
| 36 |
+
// WHERE customer_id=? and mamut_id=?", array($customerId, $mamutId) );
|
| 37 |
+
|
| 38 |
+
//if($customermamut_mapping_row == null){
|
| 39 |
+
|
| 40 |
+
try{
|
| 41 |
+
$sql = "INSERT INTO ".$this->resource->getTableName('ecomwise_customermamut_mapping')." values (?,?)";
|
| 42 |
+
$this->writer->query($sql, array($customerId,$mamutId));
|
| 43 |
+
return true;
|
| 44 |
+
|
| 45 |
+
}catch(Exception $ex){
|
| 46 |
+
Mage::log($ex->getMessage());
|
| 47 |
+
return false;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
// }
|
| 51 |
+
|
| 52 |
+
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
public function removeMamutMapping($mamutId, $customerId){
|
| 56 |
+
$this->construct();
|
| 57 |
+
|
| 58 |
+
if($mamutId == 0 or $mamutId == null or $customerId == 0 or $customerId == null){
|
| 59 |
+
$this->_fault("invalid_data_provided");
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
$customermamut_mapping_row = $this->reader->fetchRow("SELECT mamut_id, customer_id FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')."
|
| 63 |
+
WHERE mamut_id=? AND customer_id=?", array($mamutId, $customerId) );
|
| 64 |
+
|
| 65 |
+
if($customermamut_mapping_row != null){
|
| 66 |
+
$sql = "DELETE FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')." WHERE mamut_id=? AND customer_id=?";
|
| 67 |
+
$this->writer->query($sql, array($mamutId, $customerId));
|
| 68 |
+
return true;
|
| 69 |
+
}else{
|
| 70 |
+
$this->_fault("mapping_not_found");
|
| 71 |
+
}
|
| 72 |
+
return false;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
public function filterMamutMapping(){
|
| 76 |
+
$this->construct();
|
| 77 |
+
$rows = $this->reader->fetchAll("SELECT * FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')." ");
|
| 78 |
+
|
| 79 |
+
$count = 0;
|
| 80 |
+
foreach($rows as $row){
|
| 81 |
+
$cid = $row['customer_id'];
|
| 82 |
+
$cid_entity_row = $this->reader->fetchRow("SELECT * FROM ".$this->resource->getTableName('customer_entity')." WHERE entity_id = ".$cid." ;");
|
| 83 |
+
if(!$cid_entity_row){
|
| 84 |
+
$count++;
|
| 85 |
+
$this->writer->query("DELETE FROM ".$this->resource->getTableName('ecomwise_customermamut_mapping')." WHERE customer_id = ".$cid." ;");
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
}
|
| 89 |
+
|
| 90 |
+
return $count;
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
?>
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Mamut/Api/V2.php
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Api_Mamut_Api_V2 extends Ecomwise_MshopB2B_Model_Api_Mamut_Api
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Promotions/Api.php
ADDED
|
@@ -0,0 +1,525 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Api_Promotions_Api extends Mage_Api_Model_Resource_Abstract
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
public function checkCreateFixedPriceForCustomer($mamutRuleId, $mamutCustomerId, $productSku, $fixedPrice){
|
| 6 |
+
|
| 7 |
+
$rule_id = 0;
|
| 8 |
+
|
| 9 |
+
$data = array(
|
| 10 |
+
'name' => 'Rule: '.$mamutRuleId.' for mamut user: '.$mamutCustomerId.' fixed Price '.$fixedPrice,
|
| 11 |
+
'is_active' => '1',
|
| 12 |
+
'simple_action' => 'to_fixed',
|
| 13 |
+
'discount_amount' => $fixedPrice,
|
| 14 |
+
);
|
| 15 |
+
$conditions = $this->setConditions("sku", $productSku);
|
| 16 |
+
|
| 17 |
+
$cus_groups = array();
|
| 18 |
+
if($cus_group = $this->getGroup($mamutCustomerId)){
|
| 19 |
+
$cus_groups[] = $cus_group;
|
| 20 |
+
}else{
|
| 21 |
+
$cus_groups[] = 1;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
$rule_id = $this->createRule($data, $cus_groups, null, 1, $conditions);
|
| 25 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, $mamutCustomerId);
|
| 26 |
+
|
| 27 |
+
return $rule_id;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
public function checkCreateDiscountForCustomer($mamutRuleId, $mamutCustomerId, $productSku, $discountPercentage){
|
| 31 |
+
$rule_id = 0;
|
| 32 |
+
$data = array(
|
| 33 |
+
'name' => 'Rule: '.$mamutRuleId.' for mamut user: '.$mamutCustomerId.' discount percentage '.$discountPercentage,
|
| 34 |
+
'is_active' => '1',
|
| 35 |
+
'simple_action' => 'by_percent',
|
| 36 |
+
'discount_amount' => $discountPercentage,
|
| 37 |
+
);
|
| 38 |
+
|
| 39 |
+
$conditions = $this->setConditions("sku", $productSku);
|
| 40 |
+
|
| 41 |
+
$cus_groups = array();
|
| 42 |
+
if($cus_group = $this->getGroup($mamutCustomerId)){
|
| 43 |
+
$cus_groups[] = $cus_group;
|
| 44 |
+
}else{
|
| 45 |
+
$cus_groups[] = 1;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
$rule_id = $this->createRule($data, $cus_groups, null, 1, $conditions);
|
| 49 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, $mamutCustomerId);
|
| 50 |
+
|
| 51 |
+
return $rule_id;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
public function checkCreateDefaultDiscountForCustomer($mamutRuleId, $mamutCustomerId, $discountPercentage){
|
| 55 |
+
|
| 56 |
+
$rule_id = 0;
|
| 57 |
+
$data = array(
|
| 58 |
+
'name' => 'Rule: '.$mamutRuleId.' for mamut user: '.$mamutCustomerId.' discount percentage '.$discountPercentage." on all products",
|
| 59 |
+
'is_active' => '1',
|
| 60 |
+
'simple_action' => 'by_percent',
|
| 61 |
+
'discount_amount' => $discountPercentage,
|
| 62 |
+
);
|
| 63 |
+
|
| 64 |
+
//$conditions = $this->setConditions("sku", $productSku);
|
| 65 |
+
|
| 66 |
+
$cus_groups = array();
|
| 67 |
+
if($cus_group = $this->getGroup($mamutCustomerId)){
|
| 68 |
+
$cus_groups[] = $cus_group;
|
| 69 |
+
}else{
|
| 70 |
+
$cus_groups[] = 1;
|
| 71 |
+
}
|
| 72 |
+
|
| 73 |
+
$rule_id = $this->createRule($data, $cus_groups, null, 1, null);
|
| 74 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, $mamutCustomerId);
|
| 75 |
+
|
| 76 |
+
return $rule_id;
|
| 77 |
+
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
public function checkCreateDiscountCategoryForCustomer($mamutRuleId, $mamutCustomerId, $categoryId, $discountPercentage){
|
| 81 |
+
/*$rule_id = 0;
|
| 82 |
+
$session_parameter = $mamutRuleId."-".$mamutCustomerId."-".$categoryId."-".$discountPercentage;
|
| 83 |
+
|
| 84 |
+
$data = array(
|
| 85 |
+
'name' => 'Rule: '.$mamutRuleId.' for mamut user: '.$mamutCustomerId.' category discount percentage '.$discountPercentage,
|
| 86 |
+
'is_active' => '1',
|
| 87 |
+
'simple_action' => 'by_percent',
|
| 88 |
+
'discount_amount' => $discountPercentage,
|
| 89 |
+
);
|
| 90 |
+
|
| 91 |
+
$conditions = $this->setConditions("category_ids", $categoryId);
|
| 92 |
+
|
| 93 |
+
$cus_groups = array();
|
| 94 |
+
if($cus_group = $this->getGroup($mamutCustomerId)){
|
| 95 |
+
$cus_groups[] = $cus_group;
|
| 96 |
+
}else{
|
| 97 |
+
$cus_groups[] = 1;
|
| 98 |
+
}
|
| 99 |
+
|
| 100 |
+
$rule_id = $this->createRule($data, $cus_groups , null, 1, $conditions);
|
| 101 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, $mamutCustomerId);
|
| 102 |
+
|
| 103 |
+
return $rule_id;*/
|
| 104 |
+
|
| 105 |
+
// $ruleIds = "";
|
| 106 |
+
// $category = Mage::getModel('catalog/category')->load($categoryId);
|
| 107 |
+
// $productCollection = $category->getProductCollection();
|
| 108 |
+
// foreach ($productCollection as $product){
|
| 109 |
+
// $ruleIds.=",".$this->createDiscountForCustomer($mamutRuleId,$mamutCustomerId,$product->getSku(),$discountPercentage);
|
| 110 |
+
// }
|
| 111 |
+
// return substr($ruleIds,1);
|
| 112 |
+
|
| 113 |
+
$rule_id = 0;
|
| 114 |
+
$data = array(
|
| 115 |
+
'name' => 'Rule: '.$mamutRuleId.' for mamut user: '.$mamutCustomerId.' category discount percentage '.$discountPercentage,
|
| 116 |
+
'is_active' => '1',
|
| 117 |
+
'simple_action' => 'by_percent',
|
| 118 |
+
'discount_amount' => $discountPercentage,
|
| 119 |
+
);
|
| 120 |
+
|
| 121 |
+
$productSkus = array();
|
| 122 |
+
$category = Mage::getModel('catalog/category')->load($categoryId);
|
| 123 |
+
$productCollection = $category->getProductCollection();
|
| 124 |
+
|
| 125 |
+
foreach ($productCollection as $product){
|
| 126 |
+
$productSkus[] = $product->getSku();
|
| 127 |
+
}
|
| 128 |
+
if(count($productSkus)==0){
|
| 129 |
+
$this->_fault('no_products_assigned_to_category');
|
| 130 |
+
}
|
| 131 |
+
$conditions = $this->setConditions("sku", $productSkus);
|
| 132 |
+
|
| 133 |
+
$cus_groups = array();
|
| 134 |
+
if($cus_group = $this->getGroup($mamutCustomerId)){
|
| 135 |
+
$cus_groups[] = $cus_group;
|
| 136 |
+
}else{
|
| 137 |
+
$cus_groups[] = 1;
|
| 138 |
+
}
|
| 139 |
+
|
| 140 |
+
$rule_id = $this->createRule($data, $cus_groups , null, 1, $conditions);
|
| 141 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, $mamutCustomerId);
|
| 142 |
+
|
| 143 |
+
return $rule_id;
|
| 144 |
+
}
|
| 145 |
+
|
| 146 |
+
public function checkCreateFixedPriceForCustomerGroup($mamutRuleId, $customerGroup, $productSku, $price){
|
| 147 |
+
$rule_id = 0;
|
| 148 |
+
$data = array(
|
| 149 |
+
'name' => 'Rule for customer group: '.$customerGroup.' fixed Price '.$price,
|
| 150 |
+
'is_active' => '1',
|
| 151 |
+
'simple_action' => 'to_fixed',
|
| 152 |
+
'discount_amount' => $price,
|
| 153 |
+
);
|
| 154 |
+
$conditions = $this->setConditions("sku", $productSku);
|
| 155 |
+
|
| 156 |
+
$customerGroupId = $this->getCustomerGroups($customerGroup);
|
| 157 |
+
|
| 158 |
+
if(!$customerGroupId){
|
| 159 |
+
$this->_fault('customer_group_not_exists');
|
| 160 |
+
}
|
| 161 |
+
$rule_id = $this->createRule($data, array($customerGroupId), null, 1, $conditions);
|
| 162 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, null);
|
| 163 |
+
|
| 164 |
+
return $rule_id;
|
| 165 |
+
}
|
| 166 |
+
|
| 167 |
+
public function checkCreateDiscountForCustomerGroup($mamutRuleId, $customerGroup, $productSku, $discountPercentage){
|
| 168 |
+
$rule_id = 0;
|
| 169 |
+
$data = array(
|
| 170 |
+
'name' => 'Rule for customer group: '.$customerGroup.' discount percentage '.$discountPercentage,
|
| 171 |
+
'is_active' => '1',
|
| 172 |
+
'simple_action' => 'by_percent',
|
| 173 |
+
'discount_amount' => $discountPercentage,
|
| 174 |
+
);
|
| 175 |
+
$conditions = $this->setConditions("sku", $productSku);
|
| 176 |
+
|
| 177 |
+
$customerGroupId = $this->getCustomerGroups($customerGroup);
|
| 178 |
+
|
| 179 |
+
if(!$customerGroupId){
|
| 180 |
+
$this->_fault('customer_group_not_exists');
|
| 181 |
+
}
|
| 182 |
+
$rule_id = $this->createRule($data, array($customerGroupId), null, 1, $conditions);
|
| 183 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, null);
|
| 184 |
+
|
| 185 |
+
return $rule_id;
|
| 186 |
+
}
|
| 187 |
+
|
| 188 |
+
public function checkCreateDiscountCategoryForCustomerGroup($mamutRuleId, $customerGroup, $categoryId, $discountPercentage){
|
| 189 |
+
|
| 190 |
+
/*
|
| 191 |
+
$rule_id = 0;
|
| 192 |
+
$data = array(
|
| 193 |
+
'name' => 'Rule for customer group on category: '.$customerGroup.' discount percentage '.$discountPercentage,
|
| 194 |
+
'is_active' => '1',
|
| 195 |
+
'simple_action' => 'by_percent',
|
| 196 |
+
'discount_amount' => $discountPercentage,
|
| 197 |
+
);
|
| 198 |
+
$conditions = $this->setConditions("category_ids", $categoryId);
|
| 199 |
+
|
| 200 |
+
$customerGroupId = $this->getCustomerGroups($customerGroup);
|
| 201 |
+
|
| 202 |
+
if(!$customerGroupId){
|
| 203 |
+
$this->_fault('customer_group_not_exists');
|
| 204 |
+
}
|
| 205 |
+
$rule_id = $this->createRule($data, array($customerGroupId), null, 1, $conditions);
|
| 206 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, null);
|
| 207 |
+
|
| 208 |
+
return $rule_id;*/
|
| 209 |
+
|
| 210 |
+
$rule_id = 0;
|
| 211 |
+
$data = array(
|
| 212 |
+
'name' => 'Rule for customer group on category: '.$customerGroup.' discount percentage '.$discountPercentage,
|
| 213 |
+
'is_active' => '1',
|
| 214 |
+
'simple_action' => 'by_percent',
|
| 215 |
+
'discount_amount' => $discountPercentage,
|
| 216 |
+
);
|
| 217 |
+
$productSkus = array();
|
| 218 |
+
$category = Mage::getModel('catalog/category')->load($categoryId);
|
| 219 |
+
$productCollection = $category->getProductCollection();
|
| 220 |
+
|
| 221 |
+
foreach ($productCollection as $product){
|
| 222 |
+
$productSkus[] = $product->getSku();
|
| 223 |
+
}
|
| 224 |
+
if(count($productSkus)==0){
|
| 225 |
+
$this->_fault('no_products_assigned_to_category');
|
| 226 |
+
}
|
| 227 |
+
$conditions = $this->setConditions("sku", $productSkus);
|
| 228 |
+
|
| 229 |
+
$customerGroupId = $this->getCustomerGroups($customerGroup);
|
| 230 |
+
|
| 231 |
+
if(!$customerGroupId){
|
| 232 |
+
$this->_fault('customer_group_not_exists');
|
| 233 |
+
}
|
| 234 |
+
$rule_id = $this->createRule($data, array($customerGroupId), null, 1, $conditions);
|
| 235 |
+
$this->mapRuleToMamutRule($rule_id, $mamutRuleId, null);
|
| 236 |
+
|
| 237 |
+
return $rule_id;
|
| 238 |
+
|
| 239 |
+
}
|
| 240 |
+
|
| 241 |
+
public function deleteDiscountRule($mamutRuleIds){
|
| 242 |
+
|
| 243 |
+
if(count ($mamutRuleIds) == 0){
|
| 244 |
+
$this->_fault('array_not_pased');
|
| 245 |
+
}
|
| 246 |
+
|
| 247 |
+
$resource = Mage::getSingleton('core/resource');
|
| 248 |
+
$connection = $resource->getConnection('core_write');
|
| 249 |
+
|
| 250 |
+
$mamut_to_rule_table = $resource->getTableName('ecomwise_catalogpromotions_mapping');
|
| 251 |
+
|
| 252 |
+
$result_rules = $connection->query("select * from ".$mamut_to_rule_table." ");
|
| 253 |
+
|
| 254 |
+
$rows = $result_rules->fetchAll(PDO::FETCH_ASSOC);
|
| 255 |
+
|
| 256 |
+
$deleted = false;
|
| 257 |
+
foreach($rows as $row){
|
| 258 |
+
$rule_mamut_id = $row['mamut_rule_id'] ;
|
| 259 |
+
if(!in_array($rule_mamut_id, $mamutRuleIds)){
|
| 260 |
+
|
| 261 |
+
$result_rule = $connection->fetchRow("select rule_id from ".$mamut_to_rule_table."
|
| 262 |
+
where mamut_rule_id=?", $rule_mamut_id);
|
| 263 |
+
|
| 264 |
+
if($result_rule['rule_id'] != null){
|
| 265 |
+
$rule = Mage::getModel('catalogrule/rule')->load($result_rule['rule_id']);
|
| 266 |
+
$rule->delete();
|
| 267 |
+
$connection->delete($mamut_to_rule_table, 'mamut_rule_id = ' . $rule_mamut_id);
|
| 268 |
+
$deleted = true;
|
| 269 |
+
}
|
| 270 |
+
}
|
| 271 |
+
}
|
| 272 |
+
return $deleted;
|
| 273 |
+
}
|
| 274 |
+
|
| 275 |
+
public function createRule($ruleData = null, $customerGroupIds=null, $websitesIds=null, $applyRule = null, $conditions = null){
|
| 276 |
+
$data = array(
|
| 277 |
+
'name' => 'api_rule',
|
| 278 |
+
'description' => '',
|
| 279 |
+
'from_date' => '',
|
| 280 |
+
'to_date' => '',
|
| 281 |
+
'is_active' => '1',
|
| 282 |
+
'conditions_serialized' => '',
|
| 283 |
+
'actions_serialized' => '',
|
| 284 |
+
'stop_rules_processing' => '0',
|
| 285 |
+
'sort_order' => '0',
|
| 286 |
+
'simple_action' => 'by_fixed',
|
| 287 |
+
'discount_amount' => '0',
|
| 288 |
+
);
|
| 289 |
+
|
| 290 |
+
if($ruleData === null){
|
| 291 |
+
$ruleData = array();
|
| 292 |
+
}
|
| 293 |
+
|
| 294 |
+
foreach($ruleData as $key => $newValue)
|
| 295 |
+
if(isset($data[$key]) == false){
|
| 296 |
+
$this->_fault('code_not_valid');
|
| 297 |
+
}else{
|
| 298 |
+
$data[$key] = $newValue;
|
| 299 |
+
}
|
| 300 |
+
|
| 301 |
+
if($customerGroupIds){
|
| 302 |
+
if(is_array($customerGroupIds)){
|
| 303 |
+
foreach($customerGroupIds as $groupid){
|
| 304 |
+
$group = Mage::getModel('customer/group')->load($groupid);
|
| 305 |
+
if(!($group->getId())){
|
| 306 |
+
return $this->_fault('customer_group_not_exists');
|
| 307 |
+
}
|
| 308 |
+
}
|
| 309 |
+
$data['customer_group_ids'] = $customerGroupIds;
|
| 310 |
+
}else{
|
| 311 |
+
return $this->_fault('customerids_array_not_passed');
|
| 312 |
+
}
|
| 313 |
+
}else{
|
| 314 |
+
$data['customer_group_ids']= array(1);
|
| 315 |
+
}
|
| 316 |
+
|
| 317 |
+
if($websitesIds){
|
| 318 |
+
if(is_array($websitesIds)){
|
| 319 |
+
foreach($websitesIds as $webid){
|
| 320 |
+
$web = Mage::app()->getWebsite($webid);
|
| 321 |
+
if(!$web){
|
| 322 |
+
return $this->_fault('website_not_exists');
|
| 323 |
+
}
|
| 324 |
+
}
|
| 325 |
+
$data['website_ids'] = $websitesIds;
|
| 326 |
+
}else{
|
| 327 |
+
return $this->_fault('websiteids_array_not_passed');
|
| 328 |
+
}
|
| 329 |
+
}else{
|
| 330 |
+
$wids = array();
|
| 331 |
+
foreach (Mage::app()->getWebsites() as $website) {
|
| 332 |
+
$websiteId = $website->getId();
|
| 333 |
+
$wids[] = $websiteId;
|
| 334 |
+
}
|
| 335 |
+
$data['website_ids'] = $wids;
|
| 336 |
+
}
|
| 337 |
+
|
| 338 |
+
try{
|
| 339 |
+
|
| 340 |
+
$rule = Mage::getModel('catalogrule/rule');
|
| 341 |
+
$rule->setData($data);
|
| 342 |
+
|
| 343 |
+
foreach($conditions as $condition){
|
| 344 |
+
$rule->getConditions()->addCondition($condition);
|
| 345 |
+
}
|
| 346 |
+
$rule->save();
|
| 347 |
+
|
| 348 |
+
return $rule->getId();
|
| 349 |
+
}catch(Mage_Core_Exception $e){
|
| 350 |
+
return $this->_fault('not_created',$e->getMessage());
|
| 351 |
+
}
|
| 352 |
+
|
| 353 |
+
}
|
| 354 |
+
|
| 355 |
+
|
| 356 |
+
private function isIndInstalled(){
|
| 357 |
+
$modules = Mage::getConfig()->getNode('modules')->children();
|
| 358 |
+
$modulesArray = (array)$modules;
|
| 359 |
+
|
| 360 |
+
if(isset($modulesArray['Ecomwise_Customerpromotions'])) {
|
| 361 |
+
|
| 362 |
+
return true;
|
| 363 |
+
} else {
|
| 364 |
+
return false;
|
| 365 |
+
}
|
| 366 |
+
|
| 367 |
+
}
|
| 368 |
+
|
| 369 |
+
private function mapRuleToMamutRule($rule_id, $mamutRuleId, $mamutcustomerid = null){
|
| 370 |
+
|
| 371 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 372 |
+
|
| 373 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 374 |
+
$mamut_to_rule_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 375 |
+
|
| 376 |
+
$mamut_id = ($mamutcustomerid != null)? $mamutcustomerid : 0;
|
| 377 |
+
|
| 378 |
+
|
| 379 |
+
$result_rule = $connection->fetchRow("select rule_id from ".$mamut_to_rule_table."
|
| 380 |
+
where mamut_rule_id=?", array($mamutRuleId));
|
| 381 |
+
|
| 382 |
+
if($result_rule['rule_id'] != null){
|
| 383 |
+
$rule = Mage::getModel('catalogrule/rule')->load($result_rule['rule_id']);
|
| 384 |
+
$rule->delete();
|
| 385 |
+
|
| 386 |
+
}
|
| 387 |
+
|
| 388 |
+
|
| 389 |
+
$connection->delete($mamut_to_rule_table, 'mamut_rule_id = ' . $mamutRuleId);
|
| 390 |
+
|
| 391 |
+
|
| 392 |
+
$data = array('rule_id'=> $rule_id,'mamut_id'=> $mamut_id,'mamut_rule_id'=>$mamutRuleId);
|
| 393 |
+
$connection->insert($mamut_to_rule_table , $data);
|
| 394 |
+
return;
|
| 395 |
+
|
| 396 |
+
}
|
| 397 |
+
private function getCustomerGroups($customerGroup){
|
| 398 |
+
$model = Mage::getModel('mshopb2b/catalogpromotions');
|
| 399 |
+
$customer_groups = $model->get_customer_groups();
|
| 400 |
+
foreach($customer_groups as $key=>$val){
|
| 401 |
+
if($val == $customerGroup){
|
| 402 |
+
return $key;
|
| 403 |
+
}
|
| 404 |
+
|
| 405 |
+
}
|
| 406 |
+
return false;
|
| 407 |
+
}
|
| 408 |
+
|
| 409 |
+
private function getGroup($mamut_customer_id){
|
| 410 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 411 |
+
|
| 412 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 413 |
+
$mapping_table = $resurce->getTableName('ecomwise_customermamut_mapping');
|
| 414 |
+
$query = $connection ->select()
|
| 415 |
+
->from($mapping_table, array('customer_id'))
|
| 416 |
+
->where('mamut_id = ?', $mamut_customer_id)
|
| 417 |
+
->limit(1);
|
| 418 |
+
$row_mamut = $connection->fetchRow($query);
|
| 419 |
+
if($row_mamut){
|
| 420 |
+
$cusomer_id = $row_mamut['customer_id'];
|
| 421 |
+
$customer = Mage::getModel('customer/customer')->load($cusomer_id);
|
| 422 |
+
if($customer->getId()!= null){
|
| 423 |
+
return $customer->getGroupId();
|
| 424 |
+
|
| 425 |
+
}else{
|
| 426 |
+
return false;
|
| 427 |
+
}
|
| 428 |
+
}else{
|
| 429 |
+
|
| 430 |
+
return false;
|
| 431 |
+
}
|
| 432 |
+
|
| 433 |
+
}
|
| 434 |
+
|
| 435 |
+
private function setConditions($type, $params){
|
| 436 |
+
|
| 437 |
+
$conditions = array();
|
| 438 |
+
if(is_array($params)){
|
| 439 |
+
foreach ($params as $param){
|
| 440 |
+
$skuCondition = Mage::getModel('catalogrule/rule_condition_product')
|
| 441 |
+
->setType('catalogrule/rule_condition_product')
|
| 442 |
+
->setAttribute($type)
|
| 443 |
+
->setOperator('==')
|
| 444 |
+
->setValue($param);
|
| 445 |
+
$conditions[] = $skuCondition;
|
| 446 |
+
}
|
| 447 |
+
}else{
|
| 448 |
+
$skuCondition = Mage::getModel('catalogrule/rule_condition_product')
|
| 449 |
+
->setType('catalogrule/rule_condition_product')
|
| 450 |
+
->setAttribute($type)
|
| 451 |
+
->setOperator('==')
|
| 452 |
+
->setValue($params);
|
| 453 |
+
$conditions[] = $skuCondition;
|
| 454 |
+
}
|
| 455 |
+
return $conditions;
|
| 456 |
+
}
|
| 457 |
+
|
| 458 |
+
private function changeAggregationToAny($rule_id){
|
| 459 |
+
$rule = Mage::getModel('catalogrule/rule')->load($rule_id);
|
| 460 |
+
$cond = unserialize($rule->getConditionsSerialized() );
|
| 461 |
+
$cond['aggregator'] = 'any';
|
| 462 |
+
|
| 463 |
+
$resource = Mage::getSingleton('core/resource');
|
| 464 |
+
$writer = $resource->getConnection('core_write');
|
| 465 |
+
|
| 466 |
+
$sql = "UPDATE ".$resource->getTableName('catalogrule')." SET conditions_serialized=? WHERE rule_id=\"".$rule_id."\"";
|
| 467 |
+
$writer->query($sql, serialize($cond));
|
| 468 |
+
}
|
| 469 |
+
|
| 470 |
+
private function createDiscountForCustomer($mamutRuleId, $mamutCustomerId, $productSku, $discountPercentage){
|
| 471 |
+
$rule_id = 0;
|
| 472 |
+
$session_parameter = $mamutRuleId."-".$mamutCustomerId."-".$productSku."-".$discountPercentage;
|
| 473 |
+
|
| 474 |
+
$data = array(
|
| 475 |
+
'name' => 'Rule: '.$mamutRuleId.' for mamut user: '.$mamutCustomerId.' discount percentage '.$discountPercentage,
|
| 476 |
+
'is_active' => '1',
|
| 477 |
+
'simple_action' => 'by_percent',
|
| 478 |
+
'discount_amount' => $discountPercentage,
|
| 479 |
+
);
|
| 480 |
+
|
| 481 |
+
$conditions = $this->setConditions("sku", $productSku);
|
| 482 |
+
|
| 483 |
+
$cus_groups = array();
|
| 484 |
+
if($cus_group = $this->getGroup($mamutCustomerId)){
|
| 485 |
+
$cus_groups[] = $cus_group;
|
| 486 |
+
}else{
|
| 487 |
+
$cus_groups[] = 1;
|
| 488 |
+
}
|
| 489 |
+
|
| 490 |
+
$rule_id = $this->createRule($data, $cus_groups, null, 1, $conditions);
|
| 491 |
+
$this->mapMultipleMamutRuleForMamutCustomer($rule_id, $mamutRuleId, $mamutCustomerId);
|
| 492 |
+
|
| 493 |
+
return $rule_id;
|
| 494 |
+
}
|
| 495 |
+
|
| 496 |
+
private function mapMultipleMamutRuleForMamutCustomer($rule_id, $mamutRuleId, $mamutcustomerid = null){
|
| 497 |
+
|
| 498 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 499 |
+
|
| 500 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 501 |
+
$mamut_to_rule_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 502 |
+
|
| 503 |
+
$mamut_id = ($mamutcustomerid != null)? $mamutcustomerid : 0;
|
| 504 |
+
|
| 505 |
+
$data = array('rule_id'=> $rule_id,'mamut_id'=> $mamut_id,'mamut_rule_id'=>$mamutRuleId);
|
| 506 |
+
$connection->insert($mamut_to_rule_table , $data);
|
| 507 |
+
return;
|
| 508 |
+
|
| 509 |
+
}
|
| 510 |
+
|
| 511 |
+
public function applyRules(){
|
| 512 |
+
try{
|
| 513 |
+
$resource = Mage::getResourceSingleton('catalogrule/rule');
|
| 514 |
+
$collection = Mage::getModel("catalogrule/rule")->getCollection();
|
| 515 |
+
$collection->walk(array($resource, 'updateRuleProductData'));
|
| 516 |
+
$resource->applyAllRulesForDateRange();
|
| 517 |
+
Mage::app()->removeCache('catalog_rules_dirty');
|
| 518 |
+
return true;
|
| 519 |
+
}catch(Exception $ex){
|
| 520 |
+
Mage::log($ex->getMessage());
|
| 521 |
+
return false;
|
| 522 |
+
}
|
| 523 |
+
}
|
| 524 |
+
|
| 525 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Api/Promotions/Api/V2.php
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Ecomwise_MshopB2B_Model_Api_Promotions_Api_V2 extends Ecomwise_MshopB2B_Model_Api_Promotions_Api
|
| 4 |
+
{
|
| 5 |
+
|
| 6 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Carrier/Mamutshipping.php
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_Mshopb2b_Model_Carrier_Mamutshipping
|
| 3 |
+
extends Mage_Shipping_Model_Carrier_Abstract
|
| 4 |
+
implements Mage_Shipping_Model_Carrier_Interface
|
| 5 |
+
{
|
| 6 |
+
protected $_code = 'mamut_shipping';
|
| 7 |
+
protected $_isFixed = false;
|
| 8 |
+
|
| 9 |
+
public function collectRates(Mage_Shipping_Model_Rate_Request $request)
|
| 10 |
+
{
|
| 11 |
+
|
| 12 |
+
if (!(Mage::app()->getStore()->isAdmin())) {
|
| 13 |
+
return;
|
| 14 |
+
}
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
$result = Mage::getModel('shipping/rate_result');
|
| 18 |
+
|
| 19 |
+
$method = Mage::getModel('shipping/rate_result_method');
|
| 20 |
+
$method->setCarrier('mamut_shipping');
|
| 21 |
+
$method->setCarrierTitle($this->getConfigData('title'));
|
| 22 |
+
$method->setMethod('mamut_shipping');
|
| 23 |
+
$method->setMethodTitle($this->getConfigData('name'));
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
|
| 27 |
+
$method->setPrice(0);
|
| 28 |
+
$method->setCost(0);
|
| 29 |
+
|
| 30 |
+
$result->append($method);
|
| 31 |
+
|
| 32 |
+
return $result;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
public function getAllowedMethods()
|
| 36 |
+
{
|
| 37 |
+
return array('mamut_shipping' => $this->getConfigData('name'));
|
| 38 |
+
}
|
| 39 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Catalogpromotions.php
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Ecomwise_MshopB2B_Model_Catalogpromotions extends Mage_Eav_Model_Entity_Attribute{
|
| 4 |
+
|
| 5 |
+
public function get_customer_groups(){
|
| 6 |
+
|
| 7 |
+
$notlogged = false;
|
| 8 |
+
|
| 9 |
+
$customer_groups = Mage::getResourceModel('customer/group_collection')
|
| 10 |
+
->load()->toOptionArray();
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
foreach ($customer_groups as $group) {
|
| 14 |
+
if ($group['value']==0) {
|
| 15 |
+
$notlogged = true;
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
if (!$notlogged) {
|
| 19 |
+
array_unshift($customer_groups, array('value'=>0, 'label'=>Mage::helper('salesrule')->__('NOT LOGGED IN')));
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
$customer_groups_array = array();
|
| 24 |
+
|
| 25 |
+
if ($customer_groups){
|
| 26 |
+
foreach ($customer_groups as $group){
|
| 27 |
+
$customer_groups_array[$group['value']] = $group['label'];
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
return $customer_groups_array;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
public function get_customers(){
|
| 35 |
+
|
| 36 |
+
$customers = array();
|
| 37 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 38 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 39 |
+
$customer_to_rule_table = $resurce->getTableName('ecomwise_customermamut_mapping');
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
|
| 43 |
+
$query = $connection ->select()
|
| 44 |
+
->from($customer_to_rule_table, array('customer_id'))
|
| 45 |
+
->group('customer_id');
|
| 46 |
+
|
| 47 |
+
$customer_rows = $connection->fetchCol($query);
|
| 48 |
+
|
| 49 |
+
if ($customer_rows) {
|
| 50 |
+
$customer_collection = Mage::getResourceModel('customer/customer_collection')
|
| 51 |
+
->addNameToSelect()
|
| 52 |
+
->addAttributeToFilter('entity_id', $customer_rows)
|
| 53 |
+
->load();
|
| 54 |
+
|
| 55 |
+
foreach ($customer_collection as $customer){
|
| 56 |
+
$name = $customer->getName() . ' - ' . $customer->getEmail();
|
| 57 |
+
$customers[$customer->getId()] = $name;
|
| 58 |
+
}
|
| 59 |
+
}
|
| 60 |
+
|
| 61 |
+
return $customers;
|
| 62 |
+
|
| 63 |
+
}
|
| 64 |
+
|
| 65 |
+
public function getMamutId($rule_id = null){
|
| 66 |
+
if($rule_id != null){
|
| 67 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 68 |
+
$mapping_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 69 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 70 |
+
|
| 71 |
+
$result = $connection->query('SELECT * FROM '.$mapping_table.'
|
| 72 |
+
WHERE rule_id = '.$rule_id.'
|
| 73 |
+
LIMIT 1');
|
| 74 |
+
$row = $result->fetch(PDO::FETCH_ASSOC);
|
| 75 |
+
|
| 76 |
+
if($row){
|
| 77 |
+
return $row['mamut_id'];
|
| 78 |
+
}else{
|
| 79 |
+
return false;
|
| 80 |
+
}
|
| 81 |
+
|
| 82 |
+
}else{
|
| 83 |
+
return false;
|
| 84 |
+
}
|
| 85 |
+
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
|
| 89 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Collections/RuleCollection.php
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Collections_RuleCollection extends Mage_CatalogRule_Model_Resource_Rule_Collection{
|
| 3 |
+
public function getSelectCountSql()
|
| 4 |
+
{
|
| 5 |
+
$this->_renderFilters();
|
| 6 |
+
$countSelect = clone $this->getSelect();
|
| 7 |
+
$countSelect->reset(Zend_Db_Select::ORDER);
|
| 8 |
+
$countSelect->reset(Zend_Db_Select::LIMIT_COUNT);
|
| 9 |
+
$countSelect->reset(Zend_Db_Select::LIMIT_OFFSET);
|
| 10 |
+
$countSelect->reset(Zend_Db_Select::COLUMNS);
|
| 11 |
+
if(count($this->getSelect()->getPart(Zend_Db_Select::GROUP)) > 0) {
|
| 12 |
+
$countSelect->reset(Zend_Db_Select::GROUP);
|
| 13 |
+
$countSelect->distinct(true);
|
| 14 |
+
$group = $this->getSelect()->getPart(Zend_Db_Select::GROUP);
|
| 15 |
+
$countSelect->columns("COUNT(DISTINCT ".implode(", ", $group).")");
|
| 16 |
+
} else {
|
| 17 |
+
$countSelect->columns('COUNT(*)');
|
| 18 |
+
}
|
| 19 |
+
return $countSelect;
|
| 20 |
+
}
|
| 21 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Customer/Group.php
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Customer_Group extends Mage_Customer_Model_Group{
|
| 3 |
+
|
| 4 |
+
protected function _prepareData()
|
| 5 |
+
{
|
| 6 |
+
$this->setCode(
|
| 7 |
+
substr($this->getCode(), 0, 100)
|
| 8 |
+
);
|
| 9 |
+
return $this;
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
|
| 13 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Customerattribute/Backend/Mamutgroups.php
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Customerattribute_Backend_Mamutgroups extends Mage_Eav_Model_Entity_Attribute_Backend_Abstract
|
| 3 |
+
{
|
| 4 |
+
|
| 5 |
+
public function validate($object)
|
| 6 |
+
{
|
| 7 |
+
$attributeCode = $this->getAttribute()->getName();
|
| 8 |
+
$postDataConfig = ($object->getData('use_post_data_config'))? $object->getData('use_post_data_config') : array();
|
| 9 |
+
|
| 10 |
+
$isUseConfig = false;
|
| 11 |
+
if ($postDataConfig) {
|
| 12 |
+
$isUseConfig = in_array($attributeCode, $postDataConfig);
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
if ($this->getAttribute()->getIsRequired()) {
|
| 16 |
+
$attributeValue = $object->getData($attributeCode);
|
| 17 |
+
if ($this->getAttribute()->isValueEmpty($attributeValue)) {
|
| 18 |
+
if (is_array($attributeValue) && count($attributeValue)>0) {
|
| 19 |
+
} else {
|
| 20 |
+
if(!$isUseConfig) {
|
| 21 |
+
return false;
|
| 22 |
+
}
|
| 23 |
+
}
|
| 24 |
+
}
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
if ($this->getAttribute()->getIsUnique()) {
|
| 28 |
+
if (!$this->getAttribute()->getEntity()->checkAttributeUniqueValue($this->getAttribute(), $object)) {
|
| 29 |
+
$label = $this->getAttribute()->getFrontend()->getLabel();
|
| 30 |
+
Mage::throwException(Mage::helper('eav')->__('The value of attribute "%s" must be unique.', $label));
|
| 31 |
+
}
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
return true;
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
/**
|
| 39 |
+
* Before Attribute Save Process
|
| 40 |
+
*
|
| 41 |
+
* @param Varien_Object $object
|
| 42 |
+
* @return Mage_Catalog_Model_Category_Attribute_Backend_Sortby
|
| 43 |
+
*/
|
| 44 |
+
public function beforeSave($object) {
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
$attributeCode = $this->getAttribute()->getName();
|
| 48 |
+
if (is_null($object->getData($attributeCode))) {
|
| 49 |
+
$object->setData($attributeCode, false);
|
| 50 |
+
}
|
| 51 |
+
return $this;
|
| 52 |
+
}
|
| 53 |
+
|
| 54 |
+
public function afterLoad($object) {
|
| 55 |
+
$attributeCode = $this->getAttribute()->getName();
|
| 56 |
+
if ($attributeCode == 'mamut_contact_groups') {
|
| 57 |
+
$data = $object->getData($attributeCode);
|
| 58 |
+
if ($data) {
|
| 59 |
+
$object->setData($attributeCode, explode(',', $data));
|
| 60 |
+
}
|
| 61 |
+
}
|
| 62 |
+
return $this;
|
| 63 |
+
}
|
| 64 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Customerattribute/Source/Mamutgroups.php
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Customerattribute_Source_Mamutgroups extends Mage_Eav_Model_Entity_Attribute_Source_Abstract
|
| 3 |
+
{
|
| 4 |
+
public function getAllOptions()
|
| 5 |
+
{
|
| 6 |
+
if (!$this->_options) {
|
| 7 |
+
|
| 8 |
+
$resource = Mage::getSingleton('core/resource');
|
| 9 |
+
$reader = $resource->getConnection('core_read');
|
| 10 |
+
$tablename = $resource->gettableName('ecomwise_mamut_contact_groups');
|
| 11 |
+
|
| 12 |
+
$rows = $reader->fetchAll("SELECT * FROM ".$tablename." WHERE mamut_contact_group_name !='MAMUT NOT LOGGED IN'");
|
| 13 |
+
if($rows){
|
| 14 |
+
foreach ($rows as $row){
|
| 15 |
+
$this->_options[] = array(
|
| 16 |
+
'label' => $row['mamut_contact_group_name'],
|
| 17 |
+
'value' => $row['mamut_contact_group_name'],
|
| 18 |
+
'selected' => true,
|
| 19 |
+
);
|
| 20 |
+
}
|
| 21 |
+
}else{
|
| 22 |
+
$this->_options[] = array(
|
| 23 |
+
'label' => "There are no mamut contact groups uploaded",
|
| 24 |
+
'value' => "0",
|
| 25 |
+
'selected' => true,
|
| 26 |
+
);
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
}
|
| 30 |
+
return $this->_options;
|
| 31 |
+
}
|
| 32 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Observer.php
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Observer extends Varien_Object{
|
| 3 |
+
|
| 4 |
+
/**
|
| 5 |
+
*
|
| 6 |
+
* Event listener for "catalog_product_collection_load_after"
|
| 7 |
+
* It applies individual price rules to a product colection calculating them on run instead taking from database
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
public function prepareCollection($observer){
|
| 11 |
+
$data = $observer->getCollection();
|
| 12 |
+
$customer_group = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
| 13 |
+
$storeId = Mage::app()->getStore()->getId();
|
| 14 |
+
$webid = Mage::getModel('core/store')->load($storeId)->getWebsiteId();
|
| 15 |
+
|
| 16 |
+
foreach ($data as $product) {
|
| 17 |
+
|
| 18 |
+
if($product->getTypeId() == "bundle"){
|
| 19 |
+
|
| 20 |
+
$product->setMinPrice(null);
|
| 21 |
+
$product->setMaxPrice(null);
|
| 22 |
+
|
| 23 |
+
}else if($product->getTypeId() == "grouped"){
|
| 24 |
+
|
| 25 |
+
$assoc_products = $product->getTypeInstance(true)->getAssociatedProductIds($product);
|
| 26 |
+
$assoc_prices = Mage::getResourceModel('catalogrule/rule')->getRulePrices(date("Y-m-d"), $webid, $customer_group, $assoc_products);
|
| 27 |
+
$product->setMinimalPrice(min($assoc_prices));
|
| 28 |
+
}else{
|
| 29 |
+
|
| 30 |
+
$final_price = Mage::getResourceModel('catalogrule/rule')
|
| 31 |
+
->getRulePrice(date("Y-m-d"),$webid,$customer_group,$product->getId());
|
| 32 |
+
|
| 33 |
+
|
| 34 |
+
if($final_price){
|
| 35 |
+
$minimalPrice = $product->getMinimalPrice();
|
| 36 |
+
$price = $product->getPrice();
|
| 37 |
+
|
| 38 |
+
if($final_price < $price){
|
| 39 |
+
$product->setFinalPrice($final_price);
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
if($final_price < $minimalPrice){
|
| 43 |
+
$product->setMinimalPrice($final_price);
|
| 44 |
+
}
|
| 45 |
+
//$product->setFinalPrice($final_price);
|
| 46 |
+
//$product->setMinimalPrice($final_price);
|
| 47 |
+
//$product->setMaximalPrice($final_price);
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
}
|
| 54 |
+
|
| 55 |
+
return;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
/**
|
| 59 |
+
*
|
| 60 |
+
* Event listener for "catalogrule_rule_delete_after". Delete individula customer mappings for rule
|
| 61 |
+
* @ Object $observer
|
| 62 |
+
*/
|
| 63 |
+
public function afterDeleteRule($observer){
|
| 64 |
+
|
| 65 |
+
|
| 66 |
+
$data = $observer->getData();
|
| 67 |
+
$rule = $data['data_object'];
|
| 68 |
+
$rule_id = $rule -> getId();
|
| 69 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 70 |
+
|
| 71 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 72 |
+
$customer_to_rule_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 73 |
+
|
| 74 |
+
$connection->delete($customer_to_rule_table, 'rule_id = ' . $rule_id);
|
| 75 |
+
|
| 76 |
+
return;
|
| 77 |
+
|
| 78 |
+
}
|
| 79 |
+
|
| 80 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Payment/Mamutbilling.php
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
class Ecomwise_Mshopb2b_Model_Payment_Mamutbilling extends Mage_Payment_Model_Method_Abstract
|
| 4 |
+
{
|
| 5 |
+
|
| 6 |
+
protected $_code = 'mamut_billing';
|
| 7 |
+
|
| 8 |
+
protected $_isInitializeNeeded = true;
|
| 9 |
+
protected $_canUseInternal = false;
|
| 10 |
+
protected $_canUseForMultishipping = false;
|
| 11 |
+
protected $_canUseCheckout = false;
|
| 12 |
+
|
| 13 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Rules/CatalogRule.php
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Rules_CatalogRule extends Mage_CatalogRule_Model_Rule{
|
| 3 |
+
|
| 4 |
+
/**
|
| 5 |
+
*
|
| 6 |
+
* Function calculates price rules for product. It get all rules for
|
| 7 |
+
* product and calculates its price.
|
| 8 |
+
* It is used by configurable products
|
| 9 |
+
* @see Mage_CatalogRule_Model_Rule::calcProductPriceRule()
|
| 10 |
+
*/
|
| 11 |
+
|
| 12 |
+
public function calcProductPriceRule(Mage_Catalog_Model_Product $product, $price){
|
| 13 |
+
$priceRules = null;
|
| 14 |
+
$productId = $product->getId();
|
| 15 |
+
$storeId = $product->getStoreId();
|
| 16 |
+
$websiteId = Mage::app()->getStore($storeId)->getWebsiteId();
|
| 17 |
+
$customerGroupId = Mage::getSingleton('customer/session')->getCustomerGroupId();
|
| 18 |
+
$dateTs = Mage::app()->getLocale()->storeTimeStamp($storeId);
|
| 19 |
+
$cacheKey = date('Y-m-d', $dateTs)."|$websiteId|$customerGroupId|$productId|$price";
|
| 20 |
+
$customer_id = Mage::getSingleton('customer/session')->getCustomerId();
|
| 21 |
+
if($customer_id == null){
|
| 22 |
+
if ($_SESSION && isset($_SESSION['adminhtml_quote']) && isset($_SESSION['adminhtml_quote']['customer_id']) && $_SESSION['adminhtml_quote']['customer_id'])
|
| 23 |
+
{
|
| 24 |
+
$customer_id = $_SESSION['adminhtml_quote']['customer_id'];
|
| 25 |
+
}
|
| 26 |
+
|
| 27 |
+
}
|
| 28 |
+
$rule_ids = Mage::helper("mshopb2b")-> getRulesForCustomer($customer_id);
|
| 29 |
+
|
| 30 |
+
$product_rule_data = $this->getResource()->_getRuleProductsStmt($time, $time, $productId, $websiteId)->fetchAll();
|
| 31 |
+
//filter hihest discount rule for customer
|
| 32 |
+
$product_rule_data =Mage::getResourceModel('catalogrule/rule')->filterIndividual($product_rule_data, $rule_ids, $customer_id , $price, $customerGroupId);
|
| 33 |
+
|
| 34 |
+
$priceRules = $price;
|
| 35 |
+
$ind_rules = array();
|
| 36 |
+
foreach ($product_rule_data as $data){
|
| 37 |
+
$rule_id = $data['rule_id'];
|
| 38 |
+
if(!in_array($rule_id, $ind_rules)){
|
| 39 |
+
$priceRules = Mage::helper('catalogrule')->calcPriceRule(
|
| 40 |
+
$data['action_operator'],
|
| 41 |
+
$data['action_amount'],
|
| 42 |
+
$priceRules );
|
| 43 |
+
$ind_rules[] = $rule_id;
|
| 44 |
+
if ($data['action_stop']) {
|
| 45 |
+
break;
|
| 46 |
+
}
|
| 47 |
+
}
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return $priceRules;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Rules/Combine.php
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Class extends and overwrites Mage_CatalogRule_Model_Rule_Condition_Combine
|
| 4 |
+
* constructor setting the default aggregator to ANY
|
| 5 |
+
*
|
| 6 |
+
*
|
| 7 |
+
* @author
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
class Ecomwise_MshopB2B_Model_Rules_Combine extends Mage_CatalogRule_Model_Rule_Condition_Combine{
|
| 11 |
+
|
| 12 |
+
public function __construct(){
|
| 13 |
+
parent::__construct();
|
| 14 |
+
$this->setType('catalogrule/rule_condition_combine')
|
| 15 |
+
->setAggregator('any');
|
| 16 |
+
}
|
| 17 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Rules/MySQL4Rule.php
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Rules_MySQL4Rule extends Mage_CatalogRule_Model_Mysql4_Rule{
|
| 3 |
+
|
| 4 |
+
public function getRulePrice($date, $wId, $gId, $pId){
|
| 5 |
+
|
| 6 |
+
$data = $this->getRulePrices($date, $wId, $gId, array($pId));
|
| 7 |
+
|
| 8 |
+
if (isset($data[$pId])) {
|
| 9 |
+
return $data[$pId];
|
| 10 |
+
}
|
| 11 |
+
|
| 12 |
+
return false;
|
| 13 |
+
}
|
| 14 |
+
/**
|
| 15 |
+
*
|
| 16 |
+
* Main function that calculates catalog rules prices for group of products
|
| 17 |
+
* Selects all rules that are applied to that product for given date,
|
| 18 |
+
* and applyies rules to the product price depending on the customer, customer group
|
| 19 |
+
* @see Mage_CatalogRule_Model_Mysql4_Rule::getRulePrices()
|
| 20 |
+
*/
|
| 21 |
+
public function getRulePrices($date, $websiteId, $customerGroupId, $productIds){
|
| 22 |
+
|
| 23 |
+
$customer_id = Mage::getSingleton('customer/session')->getCustomerId();
|
| 24 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 25 |
+
|
| 26 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 27 |
+
$mapping_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 28 |
+
|
| 29 |
+
$rule_prices = $resurce->getTableName('catalogrule_product_price');
|
| 30 |
+
$rule_product = $resurce->getTableName('catalogrule_product');
|
| 31 |
+
|
| 32 |
+
if($mapping_table != null){
|
| 33 |
+
if($customer_id == null){
|
| 34 |
+
if ($_SESSION && isset($_SESSION['adminhtml_quote']) && isset($_SESSION['adminhtml_quote']['customer_id']) && $_SESSION['adminhtml_quote']['customer_id']){
|
| 35 |
+
$customer_id = $_SESSION['adminhtml_quote']['customer_id'];
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
}
|
| 39 |
+
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
$rule_ids = Mage::helper("mshopb2b") -> getRulesForCustomer($customer_id);
|
| 43 |
+
|
| 44 |
+
$adapter = $this->_getReadAdapter();
|
| 45 |
+
|
| 46 |
+
$product_prices = array();
|
| 47 |
+
foreach ($productIds as $pid){
|
| 48 |
+
|
| 49 |
+
$time = strtotime($date);
|
| 50 |
+
|
| 51 |
+
$product_rule_data = $this->_getRuleProductsStmt($time, $time, $pid, $websiteId)->fetchAll();
|
| 52 |
+
|
| 53 |
+
if($product_rule_data){
|
| 54 |
+
$websiteId = $product_rule_data[0]['website_id'];
|
| 55 |
+
if (isset($product_rule_data[0]['website_'.$websiteId.'_price'])) {
|
| 56 |
+
$productPrice = $product_rule_data[0]['website_'.$websiteId.'_price'];
|
| 57 |
+
}else {
|
| 58 |
+
$productPrice = $product_rule_data[0]['default_price'];
|
| 59 |
+
}
|
| 60 |
+
}else{
|
| 61 |
+
$storeId = Mage::app()->getStore()->getId();
|
| 62 |
+
$product = Mage::getModel('catalog/product')
|
| 63 |
+
->setStoreId($storeId)
|
| 64 |
+
->load($pid);
|
| 65 |
+
$productPrice = $product->getPrice();
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
//filter hihest discount rule for customer
|
| 69 |
+
$product_rule_data = $this->filterIndividual($product_rule_data, $rule_ids, $customer_id , $productPrice, $customerGroupId);
|
| 70 |
+
|
| 71 |
+
$priceRules = $productPrice;
|
| 72 |
+
$ind_rules = array();
|
| 73 |
+
foreach ($product_rule_data as $data){
|
| 74 |
+
$rule_id = $data['rule_id'];
|
| 75 |
+
if(!in_array($rule_id, $ind_rules)){
|
| 76 |
+
$priceRules = Mage::helper('catalogrule')->calcPriceRule(
|
| 77 |
+
$data['action_operator'],
|
| 78 |
+
$data['action_amount'],
|
| 79 |
+
$priceRules );
|
| 80 |
+
$ind_rules[] = $rule_id;
|
| 81 |
+
if ($data['action_stop']) {
|
| 82 |
+
break;
|
| 83 |
+
}
|
| 84 |
+
}
|
| 85 |
+
}
|
| 86 |
+
$priceRules = Mage::app()->getStore()->roundPrice($priceRules);
|
| 87 |
+
$product_prices[$pid] = $priceRules;
|
| 88 |
+
|
| 89 |
+
}
|
| 90 |
+
|
| 91 |
+
return $product_prices;
|
| 92 |
+
}
|
| 93 |
+
/**
|
| 94 |
+
*
|
| 95 |
+
*
|
| 96 |
+
* Checks if the rule is for individual customer
|
| 97 |
+
* @param unknown_type $rule_id
|
| 98 |
+
* @param unknown_type $customerId
|
| 99 |
+
*/
|
| 100 |
+
protected function isInd($rule_id, $customerId){
|
| 101 |
+
|
| 102 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 103 |
+
|
| 104 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 105 |
+
$mapping_table = $resurce->getTableName('ecomwise_catalogpromotions_mapping');
|
| 106 |
+
|
| 107 |
+
$query = $connection ->select()
|
| 108 |
+
->from($mapping_table)
|
| 109 |
+
->where('rule_id = ?', $rule_id);
|
| 110 |
+
|
| 111 |
+
$rule_rows = $connection->fetchRow($query);
|
| 112 |
+
|
| 113 |
+
if($rule_rows and $rule_rows['mamut_id'] != 0){
|
| 114 |
+
|
| 115 |
+
return true;
|
| 116 |
+
}
|
| 117 |
+
return false;
|
| 118 |
+
}
|
| 119 |
+
|
| 120 |
+
/**
|
| 121 |
+
*
|
| 122 |
+
* Core magento function that selects all rules for product for given date.
|
| 123 |
+
*
|
| 124 |
+
* @see Mage_CatalogRule_Model_Mysql4_Rule::_getRuleProductsStmt()
|
| 125 |
+
*/
|
| 126 |
+
|
| 127 |
+
public function _getRuleProductsStmt($fromDate, $toDate, $productId=null, $websiteId = null)
|
| 128 |
+
{
|
| 129 |
+
$read = $this->_getReadAdapter();
|
| 130 |
+
/**
|
| 131 |
+
* Sort order is important
|
| 132 |
+
* It used for check stop price rule condition.
|
| 133 |
+
* website_id customer_group_id product_id sort_order
|
| 134 |
+
* 1 1 1 0
|
| 135 |
+
* 1 1 1 1
|
| 136 |
+
* 1 1 1 2
|
| 137 |
+
* if row with sort order 1 will have stop flag we should exclude
|
| 138 |
+
* all next rows for same product id from price calculation
|
| 139 |
+
*/
|
| 140 |
+
$select = $read->select()
|
| 141 |
+
->from(array('rp'=>$this->getTable('catalogrule/rule_product')))
|
| 142 |
+
->where($read->quoteInto('rp.from_time=0 or rp.from_time<=?', $toDate)
|
| 143 |
+
." or ".$read->quoteInto('rp.to_time=0 or rp.to_time>=?', $fromDate))
|
| 144 |
+
|
| 145 |
+
->order(array('rp.website_id', 'rp.customer_group_id', 'rp.product_id', 'rp.sort_order', 'rp.rule_id'));
|
| 146 |
+
|
| 147 |
+
if (!is_null($productId)) {
|
| 148 |
+
$select->where('rp.product_id=?', $productId);
|
| 149 |
+
}
|
| 150 |
+
|
| 151 |
+
/**
|
| 152 |
+
* Join default price and websites prices to result
|
| 153 |
+
*/
|
| 154 |
+
$priceAttr = Mage::getSingleton('eav/config')->getAttribute('catalog_product', 'price');
|
| 155 |
+
$priceTable = $priceAttr->getBackend()->getTable();
|
| 156 |
+
$attributeId= $priceAttr->getId();
|
| 157 |
+
|
| 158 |
+
$joinCondition = '%1$s.entity_id=rp.product_id AND (%1$s.attribute_id='.$attributeId.') and %1$s.store_id=%2$s';
|
| 159 |
+
|
| 160 |
+
$select->join(
|
| 161 |
+
array('pp_default'=>$priceTable),
|
| 162 |
+
sprintf($joinCondition, 'pp_default', Mage_Core_Model_App::ADMIN_STORE_ID),
|
| 163 |
+
array('default_price'=>'pp_default.value')
|
| 164 |
+
);
|
| 165 |
+
|
| 166 |
+
if ($websiteId !== null) {
|
| 167 |
+
$website = Mage::app()->getWebsite($websiteId);
|
| 168 |
+
$defaultGroup = $website->getDefaultGroup();
|
| 169 |
+
if ($defaultGroup instanceof Mage_Core_Model_Store_Group) {
|
| 170 |
+
$storeId = $defaultGroup->getDefaultStoreId();
|
| 171 |
+
} else {
|
| 172 |
+
$storeId = Mage_Core_Model_App::ADMIN_STORE_ID;
|
| 173 |
+
}
|
| 174 |
+
|
| 175 |
+
$select->joinInner(
|
| 176 |
+
array('product_website'=>$this->getTable('catalog/product_website')),
|
| 177 |
+
'product_website.product_id=rp.product_id AND rp.website_id=product_website.website_id AND product_website.website_id='.$websiteId,
|
| 178 |
+
array()
|
| 179 |
+
);
|
| 180 |
+
|
| 181 |
+
$tableAlias = 'pp'.$websiteId;
|
| 182 |
+
$fieldAlias = 'website_'.$websiteId.'_price';
|
| 183 |
+
$select->joinLeft(
|
| 184 |
+
array($tableAlias=>$priceTable),
|
| 185 |
+
sprintf($joinCondition, $tableAlias, $storeId),
|
| 186 |
+
array($fieldAlias=>$tableAlias.'.value')
|
| 187 |
+
);
|
| 188 |
+
} else {
|
| 189 |
+
foreach (Mage::app()->getWebsites() as $website) {
|
| 190 |
+
$websiteId = $website->getId();
|
| 191 |
+
$defaultGroup = $website->getDefaultGroup();
|
| 192 |
+
if ($defaultGroup instanceof Mage_Core_Model_Store_Group) {
|
| 193 |
+
$storeId = $defaultGroup->getDefaultStoreId();
|
| 194 |
+
} else {
|
| 195 |
+
$storeId = Mage_Core_Model_App::ADMIN_STORE_ID;
|
| 196 |
+
}
|
| 197 |
+
|
| 198 |
+
$storeId = $defaultGroup->getDefaultStoreId();
|
| 199 |
+
$tableAlias = 'pp'.$websiteId;
|
| 200 |
+
$fieldAlias = 'website_'.$websiteId.'_price';
|
| 201 |
+
$select->joinLeft(
|
| 202 |
+
array($tableAlias=>$priceTable),
|
| 203 |
+
sprintf($joinCondition, $tableAlias, $storeId),
|
| 204 |
+
array($fieldAlias=>$tableAlias.'.value')
|
| 205 |
+
);
|
| 206 |
+
}
|
| 207 |
+
}
|
| 208 |
+
return $read->query($select);
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
|
| 212 |
+
public function filterIndividual($product_rule_data, $rule_ids, $customer_id, $productPrice, $customerGroupId){
|
| 213 |
+
//containers for highest discount rule id and discout price
|
| 214 |
+
$highest = null;
|
| 215 |
+
$price_start = 100000000000;
|
| 216 |
+
|
| 217 |
+
|
| 218 |
+
$individual = array();
|
| 219 |
+
|
| 220 |
+
foreach($product_rule_data as $key => $data ){
|
| 221 |
+
|
| 222 |
+
//if rule is for other individual customer is removed
|
| 223 |
+
if($this->isInd($data['rule_id'], $customer_id)){
|
| 224 |
+
if(!in_array($data['rule_id'], $rule_ids)){
|
| 225 |
+
unset($product_rule_data[$key]);
|
| 226 |
+
}else{
|
| 227 |
+
//rule price is calculated for later filtering, and if highes, rule_id is stored in $hihgest.
|
| 228 |
+
$rule_price = Mage::helper('catalogrule')->calcPriceRule(
|
| 229 |
+
$data['action_operator'],
|
| 230 |
+
$data['action_amount'],
|
| 231 |
+
$productPrice);
|
| 232 |
+
if($rule_price < $price_start){
|
| 233 |
+
$price_start = $rule_price;
|
| 234 |
+
$highest = $key;
|
| 235 |
+
}
|
| 236 |
+
//used for later filtering of highest discount rule
|
| 237 |
+
$individual[] = $key;
|
| 238 |
+
}
|
| 239 |
+
|
| 240 |
+
}else{
|
| 241 |
+
if($customerGroupId != $data['customer_group_id']){
|
| 242 |
+
unset($product_rule_data[$key]);
|
| 243 |
+
}else{
|
| 244 |
+
|
| 245 |
+
//check if rule is created by mshop
|
| 246 |
+
$resurce = Mage::getSingleton('core/resource');
|
| 247 |
+
$connection = Mage::getSingleton('core/resource')->getConnection('core_write');
|
| 248 |
+
$mshop_rule_ids = $connection->fetchAll("select rule_id from ".$resurce->getTableName('ecomwise_catalogpromotions_mapping')."");
|
| 249 |
+
$isMshop = false;
|
| 250 |
+
foreach($mshop_rule_ids as $rule){
|
| 251 |
+
if($rule['rule_id']==$data['rule_id']){
|
| 252 |
+
$isMshop = true;
|
| 253 |
+
}
|
| 254 |
+
}
|
| 255 |
+
|
| 256 |
+
if($isMshop){
|
| 257 |
+
//rule price is calculated for later filtering, and if highes, rule_id is stored in $hihgest.
|
| 258 |
+
$rule_price = Mage::helper('catalogrule')->calcPriceRule(
|
| 259 |
+
$data['action_operator'],
|
| 260 |
+
$data['action_amount'],
|
| 261 |
+
$productPrice);
|
| 262 |
+
if($rule_price < $price_start){
|
| 263 |
+
$price_start = $rule_price;
|
| 264 |
+
$highest = $key;
|
| 265 |
+
}
|
| 266 |
+
//used for later filtering of highest discount rule
|
| 267 |
+
$individual[] = $key;
|
| 268 |
+
}
|
| 269 |
+
}
|
| 270 |
+
|
| 271 |
+
}
|
| 272 |
+
}
|
| 273 |
+
//filter highest discount rule if configuration is on only for individual rules
|
| 274 |
+
if(Mage::getStoreConfig("mshopb2b/parameters/applyhighestrule", 0)){
|
| 275 |
+
$diffrence = array_diff ($individual, array($highest));
|
| 276 |
+
foreach($diffrence as $array_key){
|
| 277 |
+
unset($product_rule_data[$array_key]);
|
| 278 |
+
}
|
| 279 |
+
|
| 280 |
+
}
|
| 281 |
+
return $product_rule_data;
|
| 282 |
+
}
|
| 283 |
+
|
| 284 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/Sales/Tax/Subtotal.php
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_Sales_Tax_Subtotal extends Mage_Tax_Model_Sales_Total_Quote_Subtotal{
|
| 3 |
+
|
| 4 |
+
public function collect(Mage_Sales_Model_Quote_Address $address)
|
| 5 |
+
{
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
$items = $this->_getAddressItems($address);
|
| 9 |
+
foreach ($items as $item) {
|
| 10 |
+
if($item->getApiCreated()){
|
| 11 |
+
return $this;
|
| 12 |
+
}
|
| 13 |
+
}
|
| 14 |
+
|
| 15 |
+
$this->_store = $address->getQuote()->getStore();
|
| 16 |
+
$this->_address = $address;
|
| 17 |
+
|
| 18 |
+
$this->_subtotalInclTax = 0;
|
| 19 |
+
$this->_baseSubtotalInclTax = 0;
|
| 20 |
+
$this->_subtotal = 0;
|
| 21 |
+
$this->_baseSubtotal = 0;
|
| 22 |
+
$this->_roundingDeltas = array();
|
| 23 |
+
|
| 24 |
+
$address->setSubtotalInclTax(0);
|
| 25 |
+
$address->setBaseSubtotalInclTax(0);
|
| 26 |
+
$address->setTotalAmount('subtotal', 0);
|
| 27 |
+
$address->setBaseTotalAmount('subtotal', 0);
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
if (!$items) {
|
| 31 |
+
return $this;
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
$addressRequest = $this->_getAddressTaxRequest($address);
|
| 35 |
+
$storeRequest = $this->_getStoreTaxRequest($address);
|
| 36 |
+
$this->_calculator->setCustomer($address->getQuote()->getCustomer());
|
| 37 |
+
if ($this->_config->priceIncludesTax($this->_store)) {
|
| 38 |
+
$classIds = array();
|
| 39 |
+
foreach ($items as $item) {
|
| 40 |
+
$classIds[] = $item->getProduct()->getTaxClassId();
|
| 41 |
+
if ($item->getHasChildren()) {
|
| 42 |
+
foreach ($item->getChildren() as $child) {
|
| 43 |
+
$classIds[] = $child->getProduct()->getTaxClassId();
|
| 44 |
+
}
|
| 45 |
+
}
|
| 46 |
+
}
|
| 47 |
+
$classIds = array_unique($classIds);
|
| 48 |
+
$storeRequest->setProductClassId($classIds);
|
| 49 |
+
$addressRequest->setProductClassId($classIds);
|
| 50 |
+
$this->_areTaxRequestsSimilar = $this->_calculator->compareRequests($storeRequest, $addressRequest);
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
foreach ($items as $item) {
|
| 54 |
+
if ($item->getParentItem()) {
|
| 55 |
+
continue;
|
| 56 |
+
}
|
| 57 |
+
//if($item->getApiCreated()== true){
|
| 58 |
+
//return $this;
|
| 59 |
+
//}
|
| 60 |
+
if ($item->getHasChildren() && $item->isChildrenCalculated()) {
|
| 61 |
+
foreach ($item->getChildren() as $child) {
|
| 62 |
+
$this->_processItem($child, $addressRequest);
|
| 63 |
+
}
|
| 64 |
+
$this->_recalculateParent($item);
|
| 65 |
+
} else {
|
| 66 |
+
$this->_processItem($item, $addressRequest);
|
| 67 |
+
}
|
| 68 |
+
$this->_addSubtotalAmount($address, $item);
|
| 69 |
+
}
|
| 70 |
+
$address->setRoundingDeltas($this->_roundingDeltas);
|
| 71 |
+
return $this;
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
}
|
app/code/community/Ecomwise/MshopB2B/Model/SalesRule/Validator.php
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
class Ecomwise_MshopB2B_Model_SalesRule_Validator extends Mage_SalesRule_Model_Validator{
|
| 3 |
+
public function process(Mage_Sales_Model_Quote_Item_Abstract $item)
|
| 4 |
+
{
|
| 5 |
+
$item->setDiscountAmount(0);
|
| 6 |
+
$item->setBaseDiscountAmount(0);
|
| 7 |
+
$item->setDiscountPercent(0);
|
| 8 |
+
|
| 9 |
+
//$api_order_create = Mage::registry('api_order_create_run');
|
| 10 |
+
|
| 11 |
+
//if($item->getApiCreated()){
|
| 12 |
+
// return $this;
|
| 13 |
+
//}
|
| 14 |
+
$quote = $item->getQuote();
|
| 15 |
+
$address = $this->_getAddress($item);
|
| 16 |
+
|
| 17 |
+
$itemPrice = $this->_getItemPrice($item);
|
| 18 |
+
$baseItemPrice = $this->_getItemBasePrice($item);
|
| 19 |
+
|
| 20 |
+
if ($itemPrice <= 0) {
|
| 21 |
+
return $this;
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
$appliedRuleIds = array();
|
| 25 |
+
foreach ($this->_getRules() as $rule) {
|
| 26 |
+
|
| 27 |
+
|
| 28 |
+
|
| 29 |
+
if($rule->getName() == "API-created-rule-for-order-upload"){
|
| 30 |
+
if(!$item->getApiCreated()){
|
| 31 |
+
continue;
|
| 32 |
+
}
|
| 33 |
+
}else{
|
| 34 |
+
if($item->getApiCreated()){
|
| 35 |
+
continue;
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
/* @var $rule Mage_SalesRule_Model_Rule */
|
| 42 |
+
if (!$this->_canProcessRule($rule, $address)) {
|
| 43 |
+
continue;
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
if (!$rule->getActions()->validate($item)) {
|
| 47 |
+
continue;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
$qty = $this->_getItemQty($item, $rule);
|
| 51 |
+
$rulePercent = min(100, $rule->getDiscountAmount());
|
| 52 |
+
|
| 53 |
+
$discountAmount = 0;
|
| 54 |
+
$baseDiscountAmount = 0;
|
| 55 |
+
switch ($rule->getSimpleAction()) {
|
| 56 |
+
case Mage_SalesRule_Model_Rule::TO_PERCENT_ACTION:
|
| 57 |
+
$rulePercent = max(0, 100-$rule->getDiscountAmount());
|
| 58 |
+
//no break;
|
| 59 |
+
case Mage_SalesRule_Model_Rule::BY_PERCENT_ACTION:
|
| 60 |
+
$step = $rule->getDiscountStep();
|
| 61 |
+
if ($step) {
|
| 62 |
+
$qty = floor($qty/$step)*$step;
|
| 63 |
+
}
|
| 64 |
+
$discountAmount = ($qty*$itemPrice - $item->getDiscountAmount()) * $rulePercent/100;
|
| 65 |
+
$baseDiscountAmount= ($qty*$baseItemPrice - $item->getBaseDiscountAmount()) * $rulePercent/100;
|
| 66 |
+
|
| 67 |
+
if (!$rule->getDiscountQty() || $rule->getDiscountQty()>$qty) {
|
| 68 |
+
$discountPercent = min(100, $item->getDiscountPercent()+$rulePercent);
|
| 69 |
+
$item->setDiscountPercent($discountPercent);
|
| 70 |
+
}
|
| 71 |
+
break;
|
| 72 |
+
case Mage_SalesRule_Model_Rule::TO_FIXED_ACTION:
|
| 73 |
+
$quoteAmount = $quote->getStore()->convertPrice($rule->getDiscountAmount());
|
| 74 |
+
$discountAmount = $qty*($itemPrice-$quoteAmount);
|
| 75 |
+
$baseDiscountAmount= $qty*($baseItemPrice-$rule->getDiscountAmount());
|
| 76 |
+
break;
|
| 77 |
+
|
| 78 |
+
case Mage_SalesRule_Model_Rule::BY_FIXED_ACTION:
|
| 79 |
+
$step = $rule->getDiscountStep();
|
| 80 |
+
if ($step) {
|
| 81 |
+
$qty = floor($qty/$step)*$step;
|
| 82 |
+
}
|
| 83 |
+
$quoteAmount = $quote->getStore()->convertPrice($rule->getDiscountAmount());
|
| 84 |
+
$discountAmount = $qty*$quoteAmount;
|
| 85 |
+
$baseDiscountAmount = $qty*$rule->getDiscountAmount();
|
| 86 |
+
break;
|
| 87 |
+
|
| 88 |
+
case Mage_SalesRule_Model_Rule::CART_FIXED_ACTION:
|
| 89 |
+
if (empty($this->_rulesItemTotals[$rule->getId()])) {
|
| 90 |
+
Mage::throwException(Mage::helper('salesrule')->__('Item totals are not set for rule.'));
|
| 91 |
+
}
|
| 92 |
+
|
| 93 |
+
/**
|
| 94 |
+
* prevent applying whole cart discount for every shipping order, but only for first order
|
| 95 |
+
*/
|
| 96 |
+
if ($quote->getIsMultiShipping()) {
|
| 97 |
+
$usedForAddressId = $this->getCartFixedRuleUsedForAddress($rule->getId());
|
| 98 |
+
if ($usedForAddressId && $usedForAddressId != $address->getId()) {
|
| 99 |
+
break;
|
| 100 |
+
} else {
|
| 101 |
+
$this->setCartFixedRuleUsedForAddress($rule->getId(), $address->getId());
|
| 102 |
+
}
|
| 103 |
+
}
|
| 104 |
+
$cartRules = $address->getCartFixedRules();
|
| 105 |
+
if (!isset($cartRules[$rule->getId()])) {
|
| 106 |
+
$cartRules[$rule->getId()] = $rule->getDiscountAmount();
|
| 107 |
+
}
|
| 108 |
+
|
| 109 |
+
if ($cartRules[$rule->getId()] > 0) {
|
| 110 |
+
if ($this->_rulesItemTotals[$rule->getId()]['items_count'] <= 1) {
|
| 111 |
+
$quoteAmount = $quote->getStore()->convertPrice($cartRules[$rule->getId()]);
|
| 112 |
+
$baseDiscountAmount = min($baseItemPrice * $qty, $cartRules[$rule->getId()]);
|
| 113 |
+
} else {
|
| 114 |
+
$discountRate = $baseItemPrice * $qty / $this->_rulesItemTotals[$rule->getId()]['base_items_price'];
|
| 115 |
+
$maximumItemDiscount = $rule->getDiscountAmount() * $discountRate;
|
| 116 |
+
$quoteAmount = $quote->getStore()->convertPrice($maximumItemDiscount);
|
| 117 |
+
|
| 118 |
+
$baseDiscountAmount = min($baseItemPrice * $qty, $maximumItemDiscount);
|
| 119 |
+
$this->_rulesItemTotals[$rule->getId()]['items_count']--;
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
$discountAmount = min($itemPrice * $qty, $quoteAmount);
|
| 123 |
+
$discountAmount = $quote->getStore()->roundPrice($discountAmount);
|
| 124 |
+
$baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
|
| 125 |
+
$cartRules[$rule->getId()] -= $baseDiscountAmount;
|
| 126 |
+
}
|
| 127 |
+
$address->setCartFixedRules($cartRules);
|
| 128 |
+
|
| 129 |
+
break;
|
| 130 |
+
|
| 131 |
+
case Mage_SalesRule_Model_Rule::BUY_X_GET_Y_ACTION:
|
| 132 |
+
$x = $rule->getDiscountStep();
|
| 133 |
+
$y = $rule->getDiscountAmount();
|
| 134 |
+
if (!$x || $y>=$x) {
|
| 135 |
+
break;
|
| 136 |
+
}
|
| 137 |
+
$buyAndDiscountQty = $x + $y;
|
| 138 |
+
|
| 139 |
+
$fullRuleQtyPeriod = floor($qty / $buyAndDiscountQty);
|
| 140 |
+
$freeQty = $qty - $fullRuleQtyPeriod * $buyAndDiscountQty;
|
| 141 |
+
|
| 142 |
+
$discountQty = $fullRuleQtyPeriod * $y;
|
| 143 |
+
if ($freeQty > $x) {
|
| 144 |
+
$discountQty += $freeQty - $x;
|
| 145 |
+
}
|
| 146 |
+
|
| 147 |
+
$discountAmount = $discountQty * $itemPrice;
|
| 148 |
+
$baseDiscountAmount= $discountQty * $baseItemPrice;
|
| 149 |
+
break;
|
| 150 |
+
}
|
| 151 |
+
|
| 152 |
+
$result = new Varien_Object(array(
|
| 153 |
+
'discount_amount' => $discountAmount,
|
| 154 |
+
'base_discount_amount' => $baseDiscountAmount,
|
| 155 |
+
));
|
| 156 |
+
Mage::dispatchEvent('salesrule_validator_process', array(
|
| 157 |
+
'rule' => $rule,
|
| 158 |
+
'item' => $item,
|
| 159 |
+
'address' => $address,
|
| 160 |
+
'quote' => $quote,
|
| 161 |
+
'qty' => $qty,
|
| 162 |
+
'result' => $result,
|
| 163 |
+
));
|
| 164 |
+
|
| 165 |
+
$discountAmount = $result->getDiscountAmount();
|
| 166 |
+
$baseDiscountAmount = $result->getBaseDiscountAmount();
|
| 167 |
+
|
| 168 |
+
$percentKey = $item->getDiscountPercent();
|
| 169 |
+
/**
|
| 170 |
+
* Process "delta" rounding
|
| 171 |
+
*/
|
| 172 |
+
if ($percentKey) {
|
| 173 |
+
$delta = isset($this->_roundingDeltas[$percentKey]) ? $this->_roundingDeltas[$percentKey] : 0;
|
| 174 |
+
$baseDelta = isset($this->_baseRoundingDeltas[$percentKey]) ? $this->_baseRoundingDeltas[$percentKey] : 0;
|
| 175 |
+
$discountAmount+= $delta;
|
| 176 |
+
$baseDiscountAmount+=$baseDelta;
|
| 177 |
+
|
| 178 |
+
$this->_roundingDeltas[$percentKey] = $discountAmount - $quote->getStore()->roundPrice($discountAmount);
|
| 179 |
+
$this->_baseRoundingDeltas[$percentKey] = $baseDiscountAmount - $quote->getStore()->roundPrice($baseDiscountAmount);
|
| 180 |
+
$discountAmount = $quote->getStore()->roundPrice($discountAmount);
|
| 181 |
+
$baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
|
| 182 |
+
} else {
|
| 183 |
+
$discountAmount = $quote->getStore()->roundPrice($discountAmount);
|
| 184 |
+
$baseDiscountAmount = $quote->getStore()->roundPrice($baseDiscountAmount);
|
| 185 |
+
}
|
| 186 |
+
|
| 187 |
+
/**
|
| 188 |
+
* We can't use row total here because row total not include tax
|
| 189 |
+
* Discount can be applied on price included tax
|
| 190 |
+
*/
|
| 191 |
+
$discountAmount = min($item->getDiscountAmount()+$discountAmount, $itemPrice*$qty);
|
| 192 |
+
$baseDiscountAmount = min($item->getBaseDiscountAmount()+$baseDiscountAmount, $baseItemPrice*$qty);
|
| 193 |
+
|
| 194 |
+
$item->setDiscountAmount($discountAmount);
|
| 195 |
+
$item->setBaseDiscountAmount($baseDiscountAmount);
|
| 196 |
+
|
| 197 |
+
$appliedRuleIds[$rule->getRuleId()] = $rule->getRuleId();
|
| 198 |
+
|
| 199 |
+
$this->_maintainAddressCouponCode($address, $rule);
|
| 200 |
+
$this->_addDiscountDescription($address, $rule);
|
| 201 |
+
|
| 202 |
+
if ($rule->getStopRulesProcessing()) {
|
| 203 |
+
break;
|
| 204 |
+
}
|
| 205 |
+
}
|
| 206 |
+
|
| 207 |
+
$item->setAppliedRuleIds(join(',',$appliedRuleIds));
|
| 208 |
+
$address->setAppliedRuleIds($this->mergeIds($address->getAppliedRuleIds(), $appliedRuleIds));
|
| 209 |
+
$quote->setAppliedRuleIds($this->mergeIds($quote->getAppliedRuleIds(), $appliedRuleIds));
|
| 210 |
+
|
| 211 |
+
return $this;
|
| 212 |
+
}
|
| 213 |
+
|
| 214 |
+
|
| 215 |
+
}
|
app/code/community/Ecomwise/MshopB2B/controllers/CartController.php
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
include_once('Mage/Checkout/controllers/CartController.php');
|
| 3 |
+
|
| 4 |
+
class Ecomwise_MshopB2B_CartController extends Mage_Checkout_CartController{
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
public function addAction(){
|
| 8 |
+
|
| 9 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 10 |
+
if($customer){
|
| 11 |
+
$is_blocked = $customer->getMshopBloked();
|
| 12 |
+
if($customer->getMshopBloked() == 1){
|
| 13 |
+
$this->_getSession()->addError($this->__("Your account is blocked from shopping in the webshop! Contact store owners for unblocking your account!"));
|
| 14 |
+
$this->_goBack();
|
| 15 |
+
return;
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
parent::addAction();
|
| 20 |
+
|
| 21 |
+
}
|
| 22 |
+
|
| 23 |
+
public function addgroupAction(){
|
| 24 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 25 |
+
if($customer){
|
| 26 |
+
$is_blocked = $customer->getMshopBloked();
|
| 27 |
+
if($customer->getMshopBloked() == 1){
|
| 28 |
+
$this->_getSession()->addError($this->__("Your account is blocked from shopping in the webshop! Contact store owners for unblocking your account!"));
|
| 29 |
+
$this->_goBack();
|
| 30 |
+
return;
|
| 31 |
+
}
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
parent::addgroupAction();
|
| 35 |
+
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
}
|
app/code/community/Ecomwise/MshopB2B/controllers/OrderController.php
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
include_once('Mage/Sales/controllers/OrderController.php');
|
| 4 |
+
|
| 5 |
+
class Ecomwise_MshopB2B_OrderController extends Mage_Sales_OrderController{
|
| 6 |
+
|
| 7 |
+
protected function _goBack()
|
| 8 |
+
{
|
| 9 |
+
$returnUrl = $this->getRequest()->getParam('return_url');
|
| 10 |
+
if ($returnUrl) {
|
| 11 |
+
// clear layout messages in case of external url redirect
|
| 12 |
+
if ($this->_isUrlInternal($returnUrl)) {
|
| 13 |
+
$this->_getSession()->getMessages(true);
|
| 14 |
+
}
|
| 15 |
+
$this->getResponse()->setRedirect($returnUrl);
|
| 16 |
+
} elseif (!Mage::getStoreConfig('checkout/cart/redirect_to_cart')
|
| 17 |
+
&& !$this->getRequest()->getParam('in_cart')
|
| 18 |
+
&& $backUrl = $this->_getRefererUrl()
|
| 19 |
+
) {
|
| 20 |
+
$this->getResponse()->setRedirect($backUrl);
|
| 21 |
+
} else {
|
| 22 |
+
if (($this->getRequest()->getActionName() == 'add') && !$this->getRequest()->getParam('in_cart')) {
|
| 23 |
+
$this->_getSession()->setContinueShoppingUrl($this->_getRefererUrl());
|
| 24 |
+
}
|
| 25 |
+
$this->_redirect('checkout/cart');
|
| 26 |
+
}
|
| 27 |
+
return $this;
|
| 28 |
+
}
|
| 29 |
+
|
| 30 |
+
public function reorderAction(){
|
| 31 |
+
$customer = Mage::getSingleton('customer/session')->getCustomer();
|
| 32 |
+
if($customer){
|
| 33 |
+
|
| 34 |
+
$is_blocked = $customer->getMshopBloked();
|
| 35 |
+
if($customer->getMshopBloked() == 1){
|
| 36 |
+
Mage::getSingleton('checkout/session')->addError($this->__("Your account is blocked from shopping in the webshop! Contact store owners for unblocking your account!"));
|
| 37 |
+
$this->_goBack();
|
| 38 |
+
return;
|
| 39 |
+
}
|
| 40 |
+
}
|
| 41 |
+
|
| 42 |
+
parent::reorderAction();
|
| 43 |
+
}
|
| 44 |
+
}
|
| 45 |
+
|
app/code/community/Ecomwise/MshopB2B/etc/api.xml
ADDED
|
@@ -0,0 +1,427 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<api>
|
| 4 |
+
<resources>
|
| 5 |
+
<!-- mamut methods -->
|
| 6 |
+
<mshop_mamut translate="title" module="mshopb2b">
|
| 7 |
+
<model>mshopb2b/api_mamut_api</model>
|
| 8 |
+
<title>Mamut Methods Api</title>
|
| 9 |
+
<acl>mshopb2b/mamut</acl>
|
| 10 |
+
<methods>
|
| 11 |
+
<setMamutId translate="title" module="mshopb2b">
|
| 12 |
+
<title>Set the mamut ID for multiple customers</title>
|
| 13 |
+
<method>setMamutId</method>
|
| 14 |
+
</setMamutId>
|
| 15 |
+
|
| 16 |
+
<removeMamutMapping translate="title" module="mshopb2b">
|
| 17 |
+
<title>Remove mamut to customer mapping</title>
|
| 18 |
+
<method>removeMamutMapping</method>
|
| 19 |
+
</removeMamutMapping>
|
| 20 |
+
|
| 21 |
+
</methods>
|
| 22 |
+
<faults>
|
| 23 |
+
<mapping_allready_exists>
|
| 24 |
+
<code>100</code>
|
| 25 |
+
<message>There is allreday mapping with this customer id and mamut id</message>
|
| 26 |
+
</mapping_allready_exists>
|
| 27 |
+
<customer_id_allready_exists>
|
| 28 |
+
<code>101</code>
|
| 29 |
+
<message>Customer id is allready mapped to mamut id</message>
|
| 30 |
+
</customer_id_allready_exists>
|
| 31 |
+
<mapping_not_found>
|
| 32 |
+
<code>102</code>
|
| 33 |
+
<message>Mapping for provided id's was not found</message>
|
| 34 |
+
</mapping_not_found>
|
| 35 |
+
<customer_id_not_exists>
|
| 36 |
+
<code>103</code>
|
| 37 |
+
<message>There is no mamut id mapped to this customer id</message>
|
| 38 |
+
</customer_id_not_exists>
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
<invalid_data_provided>
|
| 42 |
+
<code>104</code>
|
| 43 |
+
<message>Invalid data provided</message>
|
| 44 |
+
</invalid_data_provided>
|
| 45 |
+
|
| 46 |
+
<customer_not_exists_for_mamut_id>
|
| 47 |
+
<code>105</code>
|
| 48 |
+
<message>There is no magento customer mapped to this mamut id</message>
|
| 49 |
+
</customer_not_exists_for_mamut_id>
|
| 50 |
+
|
| 51 |
+
<mamut_product_not_exists>
|
| 52 |
+
<code>106</code>
|
| 53 |
+
<message>Product does not exists in magento</message>
|
| 54 |
+
</mamut_product_not_exists>
|
| 55 |
+
|
| 56 |
+
<problems_creating_order>
|
| 57 |
+
<code>107</code>
|
| 58 |
+
<message>Problems occured during creation of the order</message>
|
| 59 |
+
</problems_creating_order>
|
| 60 |
+
|
| 61 |
+
<problems_generating_invoice_for_order>
|
| 62 |
+
<code>108</code>
|
| 63 |
+
<message>Problem genearting invoice for this order</message>
|
| 64 |
+
</problems_generating_invoice_for_order>
|
| 65 |
+
|
| 66 |
+
<can_not_create_product>
|
| 67 |
+
<code>110</code>
|
| 68 |
+
<message>Problem creating simple product for order</message>
|
| 69 |
+
</can_not_create_product>
|
| 70 |
+
|
| 71 |
+
<magento_customer_not_exists>
|
| 72 |
+
<code>111</code>
|
| 73 |
+
<message>There is no magento customer with this ID</message>
|
| 74 |
+
</magento_customer_not_exists>
|
| 75 |
+
|
| 76 |
+
</faults>
|
| 77 |
+
</mshop_mamut>
|
| 78 |
+
<!-- end of mamut methods -->
|
| 79 |
+
|
| 80 |
+
<!-- mshop credit methods -->
|
| 81 |
+
<mshop_credit translate="title" module="mshopb2b">
|
| 82 |
+
<model>mshopb2b/api_credit_api</model>
|
| 83 |
+
<title>Credit Methods Api</title>
|
| 84 |
+
<acl>mshopb2b/credit</acl>
|
| 85 |
+
<methods>
|
| 86 |
+
<stop translate="title" module="mshopb2b">
|
| 87 |
+
<title>Stop Customer from shopping in magento</title>
|
| 88 |
+
<method>block</method>
|
| 89 |
+
</stop>
|
| 90 |
+
|
| 91 |
+
<unblock translate="title" module="mshopb2b">
|
| 92 |
+
<title>Remove customer shopping ban in magento</title>
|
| 93 |
+
<method>unblock</method>
|
| 94 |
+
</unblock>
|
| 95 |
+
|
| 96 |
+
</methods>
|
| 97 |
+
<faults>
|
| 98 |
+
<email_not_sent>
|
| 99 |
+
<code>100</code>
|
| 100 |
+
<message>Email not sent</message>
|
| 101 |
+
</email_not_sent>
|
| 102 |
+
<customer_not_exists>
|
| 103 |
+
<code>100</code>
|
| 104 |
+
<message>Customer with provided email not exists</message>
|
| 105 |
+
</customer_not_exists>
|
| 106 |
+
<customer_allready_blocked>
|
| 107 |
+
<code>101</code>
|
| 108 |
+
<message>Customer with this email is allready blocked</message>
|
| 109 |
+
</customer_allready_blocked>
|
| 110 |
+
|
| 111 |
+
<customer_allready_unblocked>
|
| 112 |
+
<code>102</code>
|
| 113 |
+
<message>Customer with this email is allready unblocked</message>
|
| 114 |
+
</customer_allready_unblocked>
|
| 115 |
+
</faults>
|
| 116 |
+
</mshop_credit>
|
| 117 |
+
<!-- end mshop credit methods -->
|
| 118 |
+
|
| 119 |
+
<!-- customer methods -->
|
| 120 |
+
<mshop_m_customer translate="title" module="mshopb2b">
|
| 121 |
+
<model>mshopb2b/api_customer_api</model>
|
| 122 |
+
<title>Customer Methods Api</title>
|
| 123 |
+
<acl>mshopb2b/customer</acl>
|
| 124 |
+
<methods>
|
| 125 |
+
<updatePreferedLocale translate="title" module="mshopb2b">
|
| 126 |
+
<title>Update Customer prefered locale</title>
|
| 127 |
+
<method>updatePreferedLocale</method>
|
| 128 |
+
</updatePreferedLocale>
|
| 129 |
+
|
| 130 |
+
<createCustomerGroup translate="title" module="mshopb2b">
|
| 131 |
+
<title>Create Customer Group by Name for given Tax Class Id</title>
|
| 132 |
+
<method>createCustomerGroup</method>
|
| 133 |
+
</createCustomerGroup>
|
| 134 |
+
|
| 135 |
+
<assignCustomerToGroup translate="title" module="mshopb2b">
|
| 136 |
+
<title>Assigns a customer to a given customer group</title>
|
| 137 |
+
<method>assignCustomerToGroup</method>
|
| 138 |
+
</assignCustomerToGroup>
|
| 139 |
+
|
| 140 |
+
<update translate="title" module="mshopb2b">
|
| 141 |
+
<title>Update customer information and invoice and billing adress</title>
|
| 142 |
+
<method>update</method>
|
| 143 |
+
</update>
|
| 144 |
+
|
| 145 |
+
<create translate="title" module="mshopb2b">
|
| 146 |
+
<title>Create customer with invoice and billing adress</title>
|
| 147 |
+
<method>create</method>
|
| 148 |
+
</create>
|
| 149 |
+
|
| 150 |
+
<getCustomersChangedSince>
|
| 151 |
+
<title>Get list of customers updated since date</title>
|
| 152 |
+
<method>updatedSince</method>
|
| 153 |
+
</getCustomersChangedSince>
|
| 154 |
+
|
| 155 |
+
|
| 156 |
+
</methods>
|
| 157 |
+
<faults module="mshopb2b">
|
| 158 |
+
<unknown_mcustomer>
|
| 159 |
+
<code>101</code>
|
| 160 |
+
<message>Non existing Magento customer, invalid customer ID provided</message>
|
| 161 |
+
</unknown_mcustomer>
|
| 162 |
+
<unknown_mgroup>
|
| 163 |
+
<code>102</code>
|
| 164 |
+
<message>Non existing customer group, invalid ID provided</message>
|
| 165 |
+
</unknown_mgroup>
|
| 166 |
+
<unknown_mtaxclass>
|
| 167 |
+
<code>103</code>
|
| 168 |
+
<message>Non existing tax class, invalid ID provided</message>
|
| 169 |
+
</unknown_mtaxclass>
|
| 170 |
+
<customer_not_exists_for_mamut_id>
|
| 171 |
+
<code>104</code>
|
| 172 |
+
<message>There is no magento customer mapped to this mamut id</message>
|
| 173 |
+
</customer_not_exists_for_mamut_id>
|
| 174 |
+
<customer_information_update_failed>
|
| 175 |
+
<code>105</code>
|
| 176 |
+
<message>Cutsomer data update was not successful</message>
|
| 177 |
+
</customer_information_update_failed>
|
| 178 |
+
<address_information_update_failed>
|
| 179 |
+
<code>106</code>
|
| 180 |
+
<message>Address data update was not successful</message>
|
| 181 |
+
</address_information_update_failed>
|
| 182 |
+
|
| 183 |
+
<customer_creation_failed>
|
| 184 |
+
<code>107</code>
|
| 185 |
+
<message>Customer creation failed</message>
|
| 186 |
+
</customer_creation_failed>
|
| 187 |
+
<mamut_id_not_set_for_customer>
|
| 188 |
+
<code>108</code>
|
| 189 |
+
<message>Mamut id was not set for customer</message>
|
| 190 |
+
</mamut_id_not_set_for_customer>
|
| 191 |
+
|
| 192 |
+
<address_creation_failed>
|
| 193 |
+
<code>109</code>
|
| 194 |
+
<message>Address creation for customer failed</message>
|
| 195 |
+
</address_creation_failed>
|
| 196 |
+
<mapped_customer_not_exists_for_mamut_id>
|
| 197 |
+
<code>110</code>
|
| 198 |
+
<message>There is customer mapped to this mamut id, but customer not exists in magneto</message>
|
| 199 |
+
</mapped_customer_not_exists_for_mamut_id>
|
| 200 |
+
<customer_create_incomplete_data>
|
| 201 |
+
<code>111</code>
|
| 202 |
+
<message>Incomplete customer creation data. Missing parts: </message>
|
| 203 |
+
</customer_create_incomplete_data>
|
| 204 |
+
<customer_create_customer_allready_exists>
|
| 205 |
+
<code>112</code>
|
| 206 |
+
<message>Customer with this email for this website already exists</message>
|
| 207 |
+
</customer_create_customer_allready_exists>
|
| 208 |
+
|
| 209 |
+
</faults>
|
| 210 |
+
</mshop_m_customer>
|
| 211 |
+
<!-- end of customer methods -->
|
| 212 |
+
|
| 213 |
+
<!-- promotions methods -->
|
| 214 |
+
<mshop_promotions translate="title" module="mshopb2b">
|
| 215 |
+
<model>mshopb2b/api_promotions_api</model>
|
| 216 |
+
<title>Promotions Methods Api</title>
|
| 217 |
+
<acl>mshopb2b/promotions</acl>
|
| 218 |
+
<methods>
|
| 219 |
+
<checkCreateFixedPriceForCustomer translate="title" module="mshopb2b">
|
| 220 |
+
<title>Create Fixed Price For Customer</title>
|
| 221 |
+
<method>checkCreateFixedPriceForCustomer</method>
|
| 222 |
+
<acl>promotions/createfixedpriceforcustomer</acl>
|
| 223 |
+
</checkCreateFixedPriceForCustomer>
|
| 224 |
+
|
| 225 |
+
<checkCreateDiscountForCustomer translate="title" module="mshopb2b">
|
| 226 |
+
<title>Create Discount For Customer</title>
|
| 227 |
+
<method>checkCreateDiscountForCustomer</method>
|
| 228 |
+
<acl>promotions/creatediscountforcustomer</acl>
|
| 229 |
+
</checkCreateDiscountForCustomer>
|
| 230 |
+
|
| 231 |
+
<checkCreateDiscountCategoryForCustomer translate="title" module="mshopb2b">
|
| 232 |
+
<title>Create Discount For Customer For Given Category</title>
|
| 233 |
+
<method>checkCreateDiscountCategoryForCustomer</method>
|
| 234 |
+
<acl>promotions/creatediscountforcustomercategory</acl>
|
| 235 |
+
</checkCreateDiscountCategoryForCustomer>
|
| 236 |
+
|
| 237 |
+
<checkCreateFixedPriceForCustomerGroup translate="title" module="mshopb2b">
|
| 238 |
+
<title>Create Fixed Price for Customer Group</title>
|
| 239 |
+
<method>checkCreateFixedPriceForCustomerGroup</method>
|
| 240 |
+
<acl>promotions/createfixedpriceforcustomergroup</acl>
|
| 241 |
+
</checkCreateFixedPriceForCustomerGroup>
|
| 242 |
+
|
| 243 |
+
<checkCreateDiscountForCustomerGroup translate="title" module="mshopb2b">
|
| 244 |
+
<title>Create Discount for Customer Group</title>
|
| 245 |
+
<method>checkCreateDiscountForCustomerGroup</method>
|
| 246 |
+
<acl>promotions/creatediscountforcustomergroup</acl>
|
| 247 |
+
</checkCreateDiscountForCustomerGroup>
|
| 248 |
+
|
| 249 |
+
<checkCreateDiscountCategoryForCustomerGroup translate="title" module="mshopb2b">
|
| 250 |
+
<title>Create Discount on Category for Customer Group</title>
|
| 251 |
+
<method>checkCreateDiscountCategoryForCustomerGroup</method>
|
| 252 |
+
<acl>promotions/creatediscountcategoryforcustomergroup</acl>
|
| 253 |
+
</checkCreateDiscountCategoryForCustomerGroup>
|
| 254 |
+
|
| 255 |
+
<deleteDiscountRulesExcept translate="title" module="mshopb2b">
|
| 256 |
+
<title>Delete Discount Rules Except Passed</title>
|
| 257 |
+
<method>deleteDiscountRule</method>
|
| 258 |
+
<acl>promotions/deletediscountrule</acl>
|
| 259 |
+
</deleteDiscountRulesExcept>
|
| 260 |
+
|
| 261 |
+
<checkCreateDefaultDiscountForCustomer>
|
| 262 |
+
<title>Create rule for default discount on all prdoucts for customer</title>
|
| 263 |
+
<method>checkCreateDefaultDiscountForCustomer</method>
|
| 264 |
+
<acl>promotions/creatediscountforcustomer</acl>
|
| 265 |
+
</checkCreateDefaultDiscountForCustomer>
|
| 266 |
+
|
| 267 |
+
<applyDiscountRules>
|
| 268 |
+
<title>Apply Rules</title>
|
| 269 |
+
<method>applyRules</method>
|
| 270 |
+
<acl>promotions/applyRules</acl>
|
| 271 |
+
</applyDiscountRules>
|
| 272 |
+
|
| 273 |
+
</methods>
|
| 274 |
+
<faults>
|
| 275 |
+
<no_rules_found>
|
| 276 |
+
<code>100</code>
|
| 277 |
+
<message>No catalog promotions where found.</message>
|
| 278 |
+
</no_rules_found>
|
| 279 |
+
|
| 280 |
+
<code_not_valid>
|
| 281 |
+
<code>101</code>
|
| 282 |
+
<message>Rule setting is not valid.</message>
|
| 283 |
+
</code_not_valid>
|
| 284 |
+
|
| 285 |
+
<customer_group_not_exists>
|
| 286 |
+
<code>102</code>
|
| 287 |
+
<message>Customer group is not valid.</message>
|
| 288 |
+
</customer_group_not_exists>
|
| 289 |
+
|
| 290 |
+
<customerids_array_not_passed>
|
| 291 |
+
<code>103</code>
|
| 292 |
+
<message>Customer ids should be passed as array.</message>
|
| 293 |
+
</customerids_array_not_passed>
|
| 294 |
+
|
| 295 |
+
<website_not_exists>
|
| 296 |
+
<code>104</code>
|
| 297 |
+
<message>Website not exists.</message>
|
| 298 |
+
</website_not_exists>
|
| 299 |
+
|
| 300 |
+
<websiteids_array_not_passed>
|
| 301 |
+
<code>105</code>
|
| 302 |
+
<message>Website ids should be passed as array.</message>
|
| 303 |
+
</websiteids_array_not_passed>
|
| 304 |
+
|
| 305 |
+
<not_created>
|
| 306 |
+
<code>106</code>
|
| 307 |
+
<message>Rule is not created.</message>
|
| 308 |
+
</not_created>
|
| 309 |
+
|
| 310 |
+
<rule_not_exists>
|
| 311 |
+
<code>107</code>
|
| 312 |
+
<message>Rule not exists.</message>
|
| 313 |
+
</rule_not_exists>
|
| 314 |
+
|
| 315 |
+
<customerids_array_not_passed>
|
| 316 |
+
<code>108</code>
|
| 317 |
+
<message>Customer ids should be passed as array.</message>
|
| 318 |
+
</customerids_array_not_passed>
|
| 319 |
+
|
| 320 |
+
<module_not_installed>
|
| 321 |
+
<code>109</code>
|
| 322 |
+
<message>Ecomwise_Customerpromotions module not installed.</message>
|
| 323 |
+
</module_not_installed>
|
| 324 |
+
|
| 325 |
+
<mapping_table_not_present>
|
| 326 |
+
<code>110</code>
|
| 327 |
+
<message>Mapping table not present.</message>
|
| 328 |
+
</mapping_table_not_present>
|
| 329 |
+
|
| 330 |
+
<no_customers>
|
| 331 |
+
<code>111</code>
|
| 332 |
+
<message>There are no individual customers for this rule.</message>
|
| 333 |
+
</no_customers>
|
| 334 |
+
|
| 335 |
+
<array_not_pased>
|
| 336 |
+
<code>112</code>
|
| 337 |
+
<message>Rule ids should be passed as array </message>
|
| 338 |
+
</array_not_pased>
|
| 339 |
+
|
| 340 |
+
<array_not_allowed>
|
| 341 |
+
<code>113</code>
|
| 342 |
+
<message>A single string representing product SKU should be passed</message>
|
| 343 |
+
</array_not_allowed>
|
| 344 |
+
|
| 345 |
+
<no_products_assigned_to_category>
|
| 346 |
+
<code>114</code>
|
| 347 |
+
<message>There are no products assigned to this category</message>
|
| 348 |
+
</no_products_assigned_to_category>
|
| 349 |
+
</faults>
|
| 350 |
+
</mshop_promotions>
|
| 351 |
+
<!-- end promotions methods -->
|
| 352 |
+
</resources>
|
| 353 |
+
<resources_alias>
|
| 354 |
+
<m_customer>mshop_m_customer</m_customer>
|
| 355 |
+
<mamut>mshop_mamut</mamut>
|
| 356 |
+
<credit>mshop_credit</credit>
|
| 357 |
+
<promotions>mshop_promotions</promotions>
|
| 358 |
+
</resources_alias>
|
| 359 |
+
<v2>
|
| 360 |
+
<resources_function_prefix>
|
| 361 |
+
<credit>mshopCredit</credit>
|
| 362 |
+
<mamut>mshopMamut</mamut>
|
| 363 |
+
<m_customer>mshopMCustomer</m_customer>
|
| 364 |
+
<promotions>mshopPromotions</promotions>
|
| 365 |
+
</resources_function_prefix>
|
| 366 |
+
</v2>
|
| 367 |
+
<acl>
|
| 368 |
+
<resources>
|
| 369 |
+
<ecomwise translate="title" module="mshopb2b">
|
| 370 |
+
<title>Ecomwise</title>
|
| 371 |
+
<sort_order>100</sort_order>
|
| 372 |
+
<mshopb2b translate="title" module="mshopb2b">
|
| 373 |
+
<title>MshopB2B Api</title>
|
| 374 |
+
<sort_order>100</sort_order>
|
| 375 |
+
<mamut translate="title" module="mshopb2b">
|
| 376 |
+
<title>Api Mamut Methods</title>
|
| 377 |
+
<sort_order>101</sort_order>
|
| 378 |
+
</mamut>
|
| 379 |
+
<credit translate="title" module="mshopb2b">
|
| 380 |
+
<title>Api Customer Credit Methods</title>
|
| 381 |
+
<sort_order>102</sort_order>
|
| 382 |
+
</credit>
|
| 383 |
+
<promotions translate="title" module="mshopb2b">
|
| 384 |
+
<title>Api Promotions Methods</title>
|
| 385 |
+
<sort_order>103</sort_order>
|
| 386 |
+
<createfixedpriceforcustomer translate="title" module="mshopb2b">
|
| 387 |
+
<title>Create Fixed Price For Customer</title>
|
| 388 |
+
</createfixedpriceforcustomer>
|
| 389 |
+
|
| 390 |
+
<creatediscountforcustomer translate="title" module="mshopb2b">
|
| 391 |
+
<title>Create Discount For Customer</title>
|
| 392 |
+
</creatediscountforcustomer>
|
| 393 |
+
|
| 394 |
+
<creatediscountforcustomercategory translate="title" module="mshopb2b">
|
| 395 |
+
<title>Create Discount For Customer For Given Category</title>
|
| 396 |
+
</creatediscountforcustomercategory>
|
| 397 |
+
|
| 398 |
+
<createfixedpriceforcustomergroup translate="title" module="mshopb2b">
|
| 399 |
+
<title>Create Fixed Price For Customer Group</title>
|
| 400 |
+
</createfixedpriceforcustomergroup>
|
| 401 |
+
|
| 402 |
+
<creatediscountforcustomergroup translate="title" module="mshopb2b">
|
| 403 |
+
<title>Create Discount for Customer Group</title>
|
| 404 |
+
</creatediscountforcustomergroup>
|
| 405 |
+
|
| 406 |
+
<creatediscountcategoryforcustomergroup translate="title" module="mshopb2b">
|
| 407 |
+
<title>Create Discount on Category For Customer Group</title>
|
| 408 |
+
</creatediscountcategoryforcustomergroup>
|
| 409 |
+
|
| 410 |
+
<deletediscountrule translate="title" module="mshopb2b">
|
| 411 |
+
<title>Delete Discount Rule</title>
|
| 412 |
+
</deletediscountrule>
|
| 413 |
+
|
| 414 |
+
<applyRules translate="title" module="mshopb2b">
|
| 415 |
+
<title>Apply Discount Rules</title>
|
| 416 |
+
</applyRules>
|
| 417 |
+
|
| 418 |
+
</promotions>
|
| 419 |
+
<customer>
|
| 420 |
+
|
| 421 |
+
</customer>
|
| 422 |
+
</mshopb2b>
|
| 423 |
+
</ecomwise>
|
| 424 |
+
</resources>
|
| 425 |
+
</acl>
|
| 426 |
+
</api>
|
| 427 |
+
</config>
|
app/code/community/Ecomwise/MshopB2B/etc/config.xml
ADDED
|
@@ -0,0 +1,197 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Ecomwise_MshopB2B>
|
| 5 |
+
<version>1.2.7</version>
|
| 6 |
+
</Ecomwise_MshopB2B>
|
| 7 |
+
</modules>
|
| 8 |
+
<frontend>
|
| 9 |
+
<routers>
|
| 10 |
+
<checkout>
|
| 11 |
+
<args>
|
| 12 |
+
<modules>
|
| 13 |
+
<ecomwise_mshopb2b before="Mage_Checkout">Ecomwise_MshopB2B</ecomwise_mshopb2b>
|
| 14 |
+
</modules>
|
| 15 |
+
</args>
|
| 16 |
+
</checkout>
|
| 17 |
+
<sales>
|
| 18 |
+
<args>
|
| 19 |
+
<modules>
|
| 20 |
+
<ecomwise_mshopb2b before="Mage_Sales">Ecomwise_MshopB2B</ecomwise_mshopb2b>
|
| 21 |
+
</modules>
|
| 22 |
+
</args>
|
| 23 |
+
</sales>
|
| 24 |
+
</routers>
|
| 25 |
+
<events>
|
| 26 |
+
<catalog_product_collection_load_after>
|
| 27 |
+
<observers>
|
| 28 |
+
<mshopb2b>
|
| 29 |
+
<class>mshopb2b/observer</class>
|
| 30 |
+
<method>prepareCollection</method>
|
| 31 |
+
</mshopb2b>
|
| 32 |
+
</observers>
|
| 33 |
+
</catalog_product_collection_load_after>
|
| 34 |
+
</events>
|
| 35 |
+
</frontend>
|
| 36 |
+
<global>
|
| 37 |
+
<models>
|
| 38 |
+
<mshopb2b>
|
| 39 |
+
<class>Ecomwise_MshopB2B_Model</class>
|
| 40 |
+
<resourceModel>mshopb2b_mysql4</resourceModel>
|
| 41 |
+
</mshopb2b>
|
| 42 |
+
|
| 43 |
+
<mshopb2b_mysql4>
|
| 44 |
+
<class>Ecomwise_MshopB2B_Model_Mysql4</class>
|
| 45 |
+
<entities>
|
| 46 |
+
<mshopb2b_customer>
|
| 47 |
+
<table>ecomwise_customerpromotions_mapping</table>
|
| 48 |
+
</mshopb2b_customer>
|
| 49 |
+
<mshopb2b_catalog>
|
| 50 |
+
<table>ecomwise_catalogpromotions_mapping</table>
|
| 51 |
+
</mshopb2b_catalog>
|
| 52 |
+
<mshopb2b>
|
| 53 |
+
<table>ecomwise_customermamut_mapping</table>
|
| 54 |
+
</mshopb2b>
|
| 55 |
+
<mshopb2b_contact>
|
| 56 |
+
<table>ecomwise_mamut_contact_groups</table>
|
| 57 |
+
</mshopb2b_contact>
|
| 58 |
+
</entities>
|
| 59 |
+
</mshopb2b_mysql4>
|
| 60 |
+
<catalogrule>
|
| 61 |
+
<!-- <rewrite>
|
| 62 |
+
<rule>Ecomwise_MshopB2B_Model_Rules_CatalogRule</rule>
|
| 63 |
+
</rewrite> -->
|
| 64 |
+
<rewrite>
|
| 65 |
+
<rule_condition_combine>Ecomwise_MshopB2B_Model_Rules_Combine</rule_condition_combine>
|
| 66 |
+
</rewrite>
|
| 67 |
+
</catalogrule>
|
| 68 |
+
<catalogrule_mysql4>
|
| 69 |
+
<rewrite>
|
| 70 |
+
<rule>Ecomwise_MshopB2B_Model_Rules_MySQL4Rule</rule>
|
| 71 |
+
</rewrite>
|
| 72 |
+
</catalogrule_mysql4>
|
| 73 |
+
<catalogrule_resource>
|
| 74 |
+
<rewrite>
|
| 75 |
+
<rule_collection>Ecomwise_MshopB2B_Model_Collections_RuleCollection</rule_collection>
|
| 76 |
+
</rewrite>
|
| 77 |
+
</catalogrule_resource>
|
| 78 |
+
<salesrule>
|
| 79 |
+
<rewrite>
|
| 80 |
+
<validator>Ecomwise_MshopB2B_Model_SalesRule_Validator</validator>
|
| 81 |
+
</rewrite>
|
| 82 |
+
</salesrule>
|
| 83 |
+
<tax>
|
| 84 |
+
<rewrite>
|
| 85 |
+
<sales_total_quote_subtotal>Ecomwise_MshopB2B_Model_Sales_Tax_Subtotal</sales_total_quote_subtotal>
|
| 86 |
+
</rewrite>
|
| 87 |
+
</tax>
|
| 88 |
+
<customer>
|
| 89 |
+
<rewrite>
|
| 90 |
+
<group>Ecomwise_MshopB2B_Model_Customer_Group</group>
|
| 91 |
+
</rewrite>
|
| 92 |
+
</customer>
|
| 93 |
+
</models>
|
| 94 |
+
<resources>
|
| 95 |
+
<mshopb2b_setup>
|
| 96 |
+
<setup>
|
| 97 |
+
<module>Ecomwise_MshopB2B</module>
|
| 98 |
+
</setup>
|
| 99 |
+
<connection>
|
| 100 |
+
<use>core_setup</use>
|
| 101 |
+
</connection>
|
| 102 |
+
</mshopb2b_setup>
|
| 103 |
+
<mshopb2b_write>
|
| 104 |
+
<connection>
|
| 105 |
+
<use>core_write</use>
|
| 106 |
+
</connection>
|
| 107 |
+
</mshopb2b_write>
|
| 108 |
+
<mshopb2b_read>
|
| 109 |
+
<connection>
|
| 110 |
+
<use>core_read</use>
|
| 111 |
+
</connection>
|
| 112 |
+
</mshopb2b_read>
|
| 113 |
+
</resources>
|
| 114 |
+
<blocks>
|
| 115 |
+
<mshopb2b>
|
| 116 |
+
<class>Ecomwise_MshopB2B_Block</class>
|
| 117 |
+
</mshopb2b>
|
| 118 |
+
<adminhtml>
|
| 119 |
+
<rewrite>
|
| 120 |
+
<promo_catalog_grid>Ecomwise_MshopB2B_Block_Adminhtml_EcomwisePromoCatalogGrid</promo_catalog_grid>
|
| 121 |
+
<promo_catalog_edit_tab_main>Ecomwise_MshopB2B_Block_Adminhtml_EcomwisePromoCatalogEditTab</promo_catalog_edit_tab_main>
|
| 122 |
+
<customer_grid>Ecomwise_MshopB2B_Block_Adminhtml_EcomwiseCustomerGrid</customer_grid>
|
| 123 |
+
<sales_order_create_shipping_method_form>Ecomwise_MshopB2B_Block_Adminhtml_Sales_Order_Create_Shipping_Method_Form</sales_order_create_shipping_method_form>
|
| 124 |
+
</rewrite>
|
| 125 |
+
</adminhtml>
|
| 126 |
+
</blocks>
|
| 127 |
+
<helpers>
|
| 128 |
+
<mshopb2b>
|
| 129 |
+
<class>Ecomwise_MshopB2B_Helper</class>
|
| 130 |
+
</mshopb2b>
|
| 131 |
+
</helpers>
|
| 132 |
+
<events>
|
| 133 |
+
<catalogrule_rule_delete_after>
|
| 134 |
+
<observers>
|
| 135 |
+
<mshopb2b>
|
| 136 |
+
<class>mshopb2b/observer</class>
|
| 137 |
+
<method>afterDeleteRule</method>
|
| 138 |
+
</mshopb2b>
|
| 139 |
+
</observers>
|
| 140 |
+
</catalogrule_rule_delete_after>
|
| 141 |
+
</events>
|
| 142 |
+
</global>
|
| 143 |
+
|
| 144 |
+
<adminhtml>
|
| 145 |
+
<acl>
|
| 146 |
+
<resources>
|
| 147 |
+
<all>
|
| 148 |
+
<title>Allow Everything</title>
|
| 149 |
+
</all>
|
| 150 |
+
<admin>
|
| 151 |
+
<children>
|
| 152 |
+
<system>
|
| 153 |
+
<children>
|
| 154 |
+
<config>
|
| 155 |
+
<children>
|
| 156 |
+
<mshopb2b translate="title" module="mshopb2b">
|
| 157 |
+
<title>Ecomwise MshopB2B</title>
|
| 158 |
+
</mshopb2b>
|
| 159 |
+
</children>
|
| 160 |
+
</config>
|
| 161 |
+
</children>
|
| 162 |
+
</system>
|
| 163 |
+
</children>
|
| 164 |
+
</admin>
|
| 165 |
+
</resources>
|
| 166 |
+
</acl>
|
| 167 |
+
</adminhtml>
|
| 168 |
+
<default>
|
| 169 |
+
<carriers>
|
| 170 |
+
<mamut_shipping>
|
| 171 |
+
<active>1</active>
|
| 172 |
+
<sallowspecific>0</sallowspecific>
|
| 173 |
+
<model>mshopb2b/carrier_mamutshipping</model>
|
| 174 |
+
<name>Mamut Rate</name>
|
| 175 |
+
<title>Mamut Shipping</title>
|
| 176 |
+
</mamut_shipping>
|
| 177 |
+
</carriers>
|
| 178 |
+
<payment>
|
| 179 |
+
<mamut_billing>
|
| 180 |
+
<model>mshopb2b/payment_mamutbilling</model>
|
| 181 |
+
<active>1</active>
|
| 182 |
+
<order_status>mshop_mamut</order_status>
|
| 183 |
+
<title>Mamut Billing</title>
|
| 184 |
+
<payment_action>sale</payment_action>
|
| 185 |
+
<allowspecific>0</allowspecific>
|
| 186 |
+
<method_description>Mamut Billing</method_description>
|
| 187 |
+
</mamut_billing>
|
| 188 |
+
</payment>
|
| 189 |
+
<mshopb2b>
|
| 190 |
+
<parameters>
|
| 191 |
+
<applyhighestrule>0</applyhighestrule>
|
| 192 |
+
<setlogging>0</setlogging>
|
| 193 |
+
</parameters>
|
| 194 |
+
</mshopb2b>
|
| 195 |
+
</default>
|
| 196 |
+
</config>
|
| 197 |
+
|
app/code/community/Ecomwise/MshopB2B/etc/system.xml
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<config>
|
| 3 |
+
<tabs>
|
| 4 |
+
<mshop_tab translate="label" module="mshopb2b">
|
| 5 |
+
<label>M-shop</label>
|
| 6 |
+
<sort_order>210</sort_order>
|
| 7 |
+
</mshop_tab>
|
| 8 |
+
</tabs>
|
| 9 |
+
<sections>
|
| 10 |
+
<mshopb2b translate="label" module="mshopb2b">
|
| 11 |
+
<label>M-shop B2B</label>
|
| 12 |
+
<tab>mshop_tab</tab>
|
| 13 |
+
<frontend_type>text</frontend_type>
|
| 14 |
+
<sort_order>110</sort_order>
|
| 15 |
+
<show_in_default>1</show_in_default>
|
| 16 |
+
<show_in_website>1</show_in_website>
|
| 17 |
+
<show_in_store>1</show_in_store>
|
| 18 |
+
<groups>
|
| 19 |
+
<about translate="label">
|
| 20 |
+
<label>About M-shop</label>
|
| 21 |
+
<frontend_type>text</frontend_type>
|
| 22 |
+
<sort_order>1</sort_order>
|
| 23 |
+
<show_in_default>1</show_in_default>
|
| 24 |
+
<show_in_website>1</show_in_website>
|
| 25 |
+
<show_in_store>1</show_in_store>
|
| 26 |
+
<fields>
|
| 27 |
+
<mshop_version translate="label">
|
| 28 |
+
<label>M-shop B2B</label>
|
| 29 |
+
<frontend_type>select</frontend_type>
|
| 30 |
+
<frontend_model>mshopb2b/system_config_version</frontend_model>
|
| 31 |
+
<sort_order>10</sort_order>
|
| 32 |
+
<show_in_default>1</show_in_default>
|
| 33 |
+
<show_in_website>1</show_in_website>
|
| 34 |
+
<show_in_store>1</show_in_store>
|
| 35 |
+
</mshop_version>
|
| 36 |
+
</fields>
|
| 37 |
+
</about>
|
| 38 |
+
<parameters translate="label">
|
| 39 |
+
<label>Settings</label>
|
| 40 |
+
<frontend_type>text</frontend_type>
|
| 41 |
+
<sort_order>3</sort_order>
|
| 42 |
+
<show_in_default>1</show_in_default>
|
| 43 |
+
<show_in_website>1</show_in_website>
|
| 44 |
+
<show_in_store>1</show_in_store>
|
| 45 |
+
<fields>
|
| 46 |
+
<applyhighestrule translate="label">
|
| 47 |
+
<label>Apply highest discount</label>
|
| 48 |
+
<frontend_type>select</frontend_type>
|
| 49 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 50 |
+
<sort_order>10</sort_order>
|
| 51 |
+
<show_in_default>1</show_in_default>
|
| 52 |
+
<show_in_website>1</show_in_website>
|
| 53 |
+
<show_in_store>1</show_in_store>
|
| 54 |
+
</applyhighestrule>
|
| 55 |
+
<setlogging translate="label">
|
| 56 |
+
<label>Enable M-shopB2B api methods logging</label>
|
| 57 |
+
<frontend_type>select</frontend_type>
|
| 58 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
| 59 |
+
<sort_order>15</sort_order>
|
| 60 |
+
<show_in_default>1</show_in_default>
|
| 61 |
+
<show_in_website>1</show_in_website>
|
| 62 |
+
<show_in_store>1</show_in_store>
|
| 63 |
+
</setlogging>
|
| 64 |
+
</fields>
|
| 65 |
+
</parameters>
|
| 66 |
+
</groups>
|
| 67 |
+
</mshopb2b>
|
| 68 |
+
</sections>
|
| 69 |
+
</config>
|
app/code/community/Ecomwise/MshopB2B/etc/wsdl.xml
ADDED
|
@@ -0,0 +1,886 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
+
<!-- Customer -->
|
| 12 |
+
|
| 13 |
+
<complexType name="customerCustomerCreateEntity">
|
| 14 |
+
<all>
|
| 15 |
+
<element name="mamut_id" type="xsd:int" minOccurs="0" />
|
| 16 |
+
<element name="customerEntity" type="typens:customerCustomerEntityToCreate" minOccurs="0" />
|
| 17 |
+
<element name="mamut_contact_groups" type="typens:ArrayOfString" minOccurs="0" />
|
| 18 |
+
</all>
|
| 19 |
+
</complexType>
|
| 20 |
+
|
| 21 |
+
<complexType name="customerCustomerCreateAddressEntityArray">
|
| 22 |
+
<complexContent>
|
| 23 |
+
<restriction base="soapenc:Array">
|
| 24 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:customerAddressEntityCreate[]" />
|
| 25 |
+
</restriction>
|
| 26 |
+
</complexContent>
|
| 27 |
+
</complexType>
|
| 28 |
+
|
| 29 |
+
|
| 30 |
+
<complexType name="customerCustomerEntityToCreate">
|
| 31 |
+
<all>
|
| 32 |
+
<element name="customer_id" type="xsd:int" minOccurs="0" />
|
| 33 |
+
<element name="email" type="xsd:string" minOccurs="0" />
|
| 34 |
+
<element name="firstname" type="xsd:string" minOccurs="0" />
|
| 35 |
+
<element name="lastname" type="xsd:string" minOccurs="0" />
|
| 36 |
+
<element name="password" type="xsd:string" minOccurs="0" />
|
| 37 |
+
<element name="website_id" type="xsd:int" minOccurs="0" />
|
| 38 |
+
<element name="store_id" type="xsd:int" minOccurs="0" />
|
| 39 |
+
<element name="group_id" type="xsd:int" minOccurs="0" />
|
| 40 |
+
<element name="taxvat" type="xsd:string" minOccurs="0" />
|
| 41 |
+
</all>
|
| 42 |
+
</complexType>
|
| 43 |
+
<complexType name="customerCustomerUpdateEntity">
|
| 44 |
+
<all>
|
| 45 |
+
<element name="customer_id" type="xsd:int" minOccurs="0" />
|
| 46 |
+
<element name="mamut_id" type="xsd:int" minOccurs="0" />
|
| 47 |
+
<element name="customerEntity" type="typens:customerCustomerEntityToCreate" minOccurs="0" />
|
| 48 |
+
<element name="mamut_contact_groups" type="typens:ArrayOfString" minOccurs="0" />
|
| 49 |
+
</all>
|
| 50 |
+
</complexType>
|
| 51 |
+
<complexType name="customerCustomerUpdateAddressEntityArray">
|
| 52 |
+
<complexContent>
|
| 53 |
+
<restriction base="soapenc:Array">
|
| 54 |
+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:customerCustomerUpdateAddressEntity[]" />
|
| 55 |
+
</restriction>
|
| 56 |
+
</complexContent>
|
| 57 |
+
</complexType>
|
| 58 |
+
<complexType name="customerCustomerUpdateAddressEntity">
|
| 59 |
+
<all>
|
| 60 |
+
<element name="address_id" type="xsd:int" minOccurs="0" />
|
| 61 |
+
<element name="addressEntity" type="typens:customerAddressEntityCreate" minOccurs="0" />
|
| 62 |
+
</all>
|
| 63 |
+
</complexType>
|
| 64 |
+
|
| 65 |
+
<complexType name="mshopCustomerUpdateEntity">
|
| 66 |
+
<all>
|
| 67 |
+
<element name="mamut_id" type="xsd:int" minOccurs="0" />
|
| 68 |
+
<element name="mamut_contact_groups" type="typens:ArrayOfString" minOccurs="0" />
|
| 69 |
+
<element name="email" type="xsd:string" minOccurs="0" />
|
| 70 |
+
<element name="firstname" type="xsd:string" minOccurs="0" />
|
| 71 |
+
<element name="lastname" type="xsd:string" minOccurs="0" />
|
| 72 |
+
<element name="password" type="xsd:string" minOccurs="0" />
|
| 73 |
+
<element name="website_id" type="xsd:int" minOccurs="0" />
|
| 74 |
+
<element name="store_id" type="xsd:int" minOccurs="0" />
|
| 75 |
+
<element name="group_id" type="xsd:int" minOccurs="0" />
|
| 76 |
+
<element name="taxvat" type="xsd:string" minOccurs="0" />
|
| 77 |
+
</all>
|
| 78 |
+
</complexType>
|
| 79 |
+
<complexType name="mshopAddressUpdateEntityForDefaultBillingAddress">
|
| 80 |
+
<all>
|
| 81 |
+
<element name="city" type="xsd:string" minOccurs="0"/>
|
| 82 |
+
<element name="company" type="xsd:string" minOccurs="0"/>
|
| 83 |
+
<element name="country_id" type="xsd:string" minOccurs="0"/>
|
| 84 |
+
<element name="fax" type="xsd:string" minOccurs="0"/>
|
| 85 |
+
<element name="firstname" type="xsd:string" minOccurs="0"/>
|
| 86 |
+
<element name="lastname" type="xsd:string" minOccurs="0"/>
|
| 87 |
+
<element name="middlename" type="xsd:string" minOccurs="0"/>
|
| 88 |
+
<element name="postcode" type="xsd:string" minOccurs="0"/>
|
| 89 |
+
<element name="prefix" type="xsd:string" minOccurs="0"/>
|
| 90 |
+
<element name="region_id" type="xsd:int" minOccurs="0"/>
|
| 91 |
+
<element name="region" type="xsd:string" minOccurs="0"/>
|
| 92 |
+
<element name="street" type="typens:ArrayOfString" minOccurs="0"/>
|
| 93 |
+
<element name="suffix" type="xsd:string" minOccurs="0"/>
|
| 94 |
+
<element name="telephone" type="xsd:string" minOccurs="0"/>
|
| 95 |
+
<element name="is_default_billing" type="xsd:boolean" minOccurs="0"/>
|
| 96 |
+
<element name="is_default_shipping" type="xsd:boolean" minOccurs="0"/>
|
| 97 |
+
</all>>
|
| 98 |
+
</complexType>
|
| 99 |
+
<complexType name="mshopAddressUpdateEntityForDefaultShippingAddress">
|
| 100 |
+
<all>
|
| 101 |
+
<element name="city" type="xsd:string" minOccurs="0"/>
|
| 102 |
+
<element name="company" type="xsd:string" minOccurs="0"/>
|
| 103 |
+
<element name="country_id" type="xsd:string" minOccurs="0"/>
|
| 104 |
+
<element name="fax" type="xsd:string" minOccurs="0"/>
|
| 105 |
+
<element name="firstname" type="xsd:string" minOccurs="0"/>
|
| 106 |
+
<element name="lastname" type="xsd:string" minOccurs="0"/>
|
| 107 |
+
<element name="middlename" type="xsd:string" minOccurs="0"/>
|
| 108 |
+
<element name="postcode" type="xsd:string" minOccurs="0"/>
|
| 109 |
+
<element name="prefix" type="xsd:string" minOccurs="0"/>
|
| 110 |
+
<element name="region_id" type="xsd:int" minOccurs="0"/>
|
| 111 |
+
<element name="region" type="xsd:string" minOccurs="0"/>
|
| 112 |
+
<element name="street" type="typens:ArrayOfString" minOccurs="0"/>
|
| 113 |
+
<element name="suffix" type="xsd:string" minOccurs="0"/>
|
| 114 |
+
<element name="telephone" type="xsd:string" minOccurs="0"/>
|
| 115 |
+
<element name="is_default_billing" type="xsd:boolean" minOccurs="0"/>
|
| 116 |
+
<element name="is_default_shipping" type="xsd:boolean" minOccurs="0"/>
|
| 117 |
+
</all>>
|
| 118 |
+
</complexType>
|
| 119 |
+
<!-- End customer -->
|
| 120 |
+
|
| 121 |
+
<!-- Promotions -->
|
| 122 |
+
|
| 123 |
+
<complexType name="mshopPromotionsListCatalogPromotionsEntity">
|
| 124 |
+
<all>
|
| 125 |
+
<element name="rule_id" type="xsd:int" minOccurs="0" />
|
| 126 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
| 127 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
| 128 |
+
<element name="from_date" type="xsd:string" minOccurs="0" />
|
| 129 |
+
<element name="to_date" type="xsd:string" minOccurs="0" />
|
| 130 |
+
<element name="customer_group_ids" type="xsd:string"
|
| 131 |
+
minOccurs="0" />
|
| 132 |
+
<element name="is_active" type="xsd:int" minOccurs="0" />
|
| 133 |
+
<element name="stop_rules_processing" type="xsd:int"
|
| 134 |
+
minOccurs="0" />
|
| 135 |
+
<element name="sort_order" type="xsd:int" minOccurs="0" />
|
| 136 |
+
<element name="simple_action" type="xsd:string" minOccurs="0" />
|
| 137 |
+
<element name="discount_amount" type="xsd:float" minOccurs="0" />
|
| 138 |
+
<element name="website_ids" type="xsd:string" minOccurs="0" />
|
| 139 |
+
</all>
|
| 140 |
+
</complexType>
|
| 141 |
+
|
| 142 |
+
<complexType name="mshopPromotionsListCatalogPromotionsEntityArray">
|
| 143 |
+
<complexContent>
|
| 144 |
+
<restriction base="soapenc:Array">
|
| 145 |
+
<attribute ref="soapenc:arrayType"
|
| 146 |
+
wsdl:arrayType="typens:mshopPromotionsListCatalogPromotionsEntity[]" />
|
| 147 |
+
</restriction>
|
| 148 |
+
</complexContent>
|
| 149 |
+
</complexType>
|
| 150 |
+
|
| 151 |
+
<complexType name="mshopPromotionsCreateCatalogRuleEntity">
|
| 152 |
+
<all>
|
| 153 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
| 154 |
+
<element name="description" type="xsd:string" minOccurs="0" />
|
| 155 |
+
<element name="from_date" type="xsd:string" minOccurs="0" />
|
| 156 |
+
<element name="to_date" type="xsd:string" minOccurs="0" />
|
| 157 |
+
<element name="conditions_serialized" type="xsd:string"
|
| 158 |
+
minOccurs="0" />
|
| 159 |
+
<element name="actions_serialized" type="xsd:string"
|
| 160 |
+
minOccurs="0" />
|
| 161 |
+
<element name="is_active" type="xsd:int" minOccurs="0" />
|
| 162 |
+
<element name="stop_rules_processing" type="xsd:int"
|
| 163 |
+
minOccurs="0" />
|
| 164 |
+
<element name="sort_order" type="xsd:int" minOccurs="0" />
|
| 165 |
+
<element name="simple_action" type="xsd:string" minOccurs="0" />
|
| 166 |
+
<element name="discount_amount" type="xsd:float" minOccurs="0" />
|
| 167 |
+
</all>
|
| 168 |
+
</complexType>
|
| 169 |
+
|
| 170 |
+
<complexType name="mshopPromotionsListCustomersForRuleEntity">
|
| 171 |
+
<all>
|
| 172 |
+
<element name="id" type="xsd:int" minOccurs="0" />
|
| 173 |
+
<element name="email" type="xsd:string" minOccurs="0" />
|
| 174 |
+
<element name="name" type="xsd:string" minOccurs="0" />
|
| 175 |
+
|
| 176 |
+
</all>
|
| 177 |
+
</complexType>
|
| 178 |
+
|
| 179 |
+
<complexType name="mshopPromotionsListCustomersForRuleEntityArray">
|
| 180 |
+
<complexContent>
|
| 181 |
+
<restriction base="soapenc:Array">
|
| 182 |
+
<attribute ref="soapenc:arrayType"
|
| 183 |
+
wsdl:arrayType="typens:mshopPromotionsListCustomersForRuleEntity[]" />
|
| 184 |
+
</restriction>
|
| 185 |
+
</complexContent>
|
| 186 |
+
</complexType>
|
| 187 |
+
<!-- end promotions -->
|
| 188 |
+
|
| 189 |
+
</schema>
|
| 190 |
+
</types>
|
| 191 |
+
<!-- customer credit -->
|
| 192 |
+
<message name="mshopCreditStopRequest">
|
| 193 |
+
<part name="sessionId" type="xsd:string" />
|
| 194 |
+
<part name="email" type="xsd:string" />
|
| 195 |
+
<part name="website_id" type="xsd:string" />
|
| 196 |
+
</message>
|
| 197 |
+
|
| 198 |
+
<message name="mshopCreditStopResponse">
|
| 199 |
+
<part name="status" type="xsd:boolean" />
|
| 200 |
+
</message>
|
| 201 |
+
|
| 202 |
+
<message name="mshopCreditUnblockRequest">
|
| 203 |
+
<part name="sessionId" type="xsd:string" />
|
| 204 |
+
<part name="email" type="xsd:string" />
|
| 205 |
+
<part name="website_id" type="xsd:string" />
|
| 206 |
+
</message>
|
| 207 |
+
|
| 208 |
+
<message name="mshopCreditUnblockResponse">
|
| 209 |
+
<part name="status" type="xsd:boolean" />
|
| 210 |
+
</message>
|
| 211 |
+
|
| 212 |
+
<!-- end customer credit -->
|
| 213 |
+
|
| 214 |
+
<!-- mamut -->
|
| 215 |
+
|
| 216 |
+
<message name="mshopMamutSetMamutIdRequest">
|
| 217 |
+
<part name="sessionId" type="xsd:string" />
|
| 218 |
+
<part name="mamutId4" type="xsd:int" />
|
| 219 |
+
<part name="customerIds" type="xsd:int" />
|
| 220 |
+
</message>
|
| 221 |
+
|
| 222 |
+
<message name="mshopMamutSetMamutIdResponse">
|
| 223 |
+
<part name="bool" type="xsd:boolean" />
|
| 224 |
+
</message>
|
| 225 |
+
|
| 226 |
+
<message name="mshopMamutRemoveMamutMappingRequest">
|
| 227 |
+
<part name="sessionId" type="xsd:string" />
|
| 228 |
+
<part name="mamutId" type="xsd:int" />
|
| 229 |
+
<part name="customerId" type="xsd:int" />
|
| 230 |
+
</message>
|
| 231 |
+
|
| 232 |
+
<message name="mshopMamutRemoveMamutMappingResponse">
|
| 233 |
+
<part name="status" type="xsd:boolean" />
|
| 234 |
+
</message>
|
| 235 |
+
|
| 236 |
+
|
| 237 |
+
<!-- customer -->
|
| 238 |
+
<message name="mshopMCustomerUpdatePreferedLocaleRequest">
|
| 239 |
+
<part name="sessionId" type="xsd:string" />
|
| 240 |
+
<part name="mamutId" type="xsd:int" />
|
| 241 |
+
<part name="preferedLocale" type="xsd:string" />
|
| 242 |
+
<!-- <part name="taxclassid" type="xsd:int" /> -->
|
| 243 |
+
</message>
|
| 244 |
+
|
| 245 |
+
<message name="mshopMCustomerUpdatePreferedLocaleResponse">
|
| 246 |
+
<part name="bool" type="xsd:boolean" />
|
| 247 |
+
</message>
|
| 248 |
+
|
| 249 |
+
<message name="mshopMCustomerCreateCustomerGroupRequest">
|
| 250 |
+
<part name="sessionId" type="xsd:string" />
|
| 251 |
+
<part name="groupname" type="xsd:string" />
|
| 252 |
+
<!-- <part name="taxclassid" type="xsd:int" /> -->
|
| 253 |
+
</message>
|
| 254 |
+
|
| 255 |
+
<message name="mshopMCustomerUpdateRequest">
|
| 256 |
+
<part name="sessionId" type="xsd:string" />
|
| 257 |
+
<part name="customer_id" type="xsd:int" />
|
| 258 |
+
<part name="customerData" type="typens:mshopCustomerUpdateEntity" />
|
| 259 |
+
<part name="addressBillingData" type="typens:mshopAddressUpdateEntityForDefaultBillingAddress" />
|
| 260 |
+
<part name="addressShippingData" type="typens:mshopAddressUpdateEntityForDefaultShippingAddress" />
|
| 261 |
+
</message>
|
| 262 |
+
|
| 263 |
+
<message name="mshopMCustomerCreateCustomerGroupResponse">
|
| 264 |
+
<part name="bool" type="xsd:boolean" />
|
| 265 |
+
</message>
|
| 266 |
+
|
| 267 |
+
<message name="mshopMCustomerUpdateResponse">
|
| 268 |
+
<part name="bool" type="xsd:boolean" />
|
| 269 |
+
</message>
|
| 270 |
+
|
| 271 |
+
<message name="mshopMCustomerAssignCustomerToGroupRequest">
|
| 272 |
+
<part name="sessionId" type="xsd:string" />
|
| 273 |
+
<part name="customerid" type="xsd:int" />
|
| 274 |
+
<part name="groupid" type="xsd:int" />
|
| 275 |
+
</message>
|
| 276 |
+
|
| 277 |
+
<message name="mshopMCustomerAssignCustomerToGroupResponse">
|
| 278 |
+
<part name="bool" type="xsd:boolean" />
|
| 279 |
+
</message>
|
| 280 |
+
|
| 281 |
+
<message name="mshopMCustomerGetCustomersChangedSinceRequest">
|
| 282 |
+
<part name="sessionId" type="xsd:string" />
|
| 283 |
+
<part name="date" type="xsd:string" />
|
| 284 |
+
</message>
|
| 285 |
+
|
| 286 |
+
<message name="mshopMCustomerGetCustomersChangedSinceResponse">
|
| 287 |
+
<part name="result" type="typens:ArrayOfInt" />
|
| 288 |
+
</message>
|
| 289 |
+
|
| 290 |
+
<message name="mshopMCustomerCreateRequest">
|
| 291 |
+
<part name="sessionId" type="xsd:string" />
|
| 292 |
+
<!-- <part name="customerData" type="typens:customerCustomerCreateEntity" /> -->
|
| 293 |
+
<part name="customerData" type="typens:mshopCustomerUpdateEntity" />
|
| 294 |
+
<part name="addressBillingData" type="typens:mshopAddressUpdateEntityForDefaultBillingAddress" />
|
| 295 |
+
<part name="addressShippingData" type="typens:mshopAddressUpdateEntityForDefaultShippingAddress" />
|
| 296 |
+
</message>
|
| 297 |
+
|
| 298 |
+
<message name="mshopMCustomerCreateResponse">
|
| 299 |
+
<part name="customerId" type="xsd:string" />
|
| 300 |
+
</message>
|
| 301 |
+
|
| 302 |
+
<!-- end customer -->
|
| 303 |
+
|
| 304 |
+
<!-- promotions -->
|
| 305 |
+
|
| 306 |
+
<message name="mshopPromotionsListCatalogPromotionsRequest">
|
| 307 |
+
<part name="sessionId" type="xsd:string" />
|
| 308 |
+
</message>
|
| 309 |
+
|
| 310 |
+
<message name="mshopPromotionsListCatalogPromotionsResponse">
|
| 311 |
+
<part name="catalogPromotions"
|
| 312 |
+
type="typens:mshopPromotionsListCatalogPromotionsEntityArray" />
|
| 313 |
+
</message>
|
| 314 |
+
|
| 315 |
+
<message name="mshopPromotionsCreateCatalogRuleRequest">
|
| 316 |
+
<part name="sessionId" type="xsd:string" />
|
| 317 |
+
<part name="ruleData" type="typens:mshopPromotionsCreateCatalogRuleEntity" />
|
| 318 |
+
<part name="customerGroupIds" type="typens:ArrayOfString" />
|
| 319 |
+
<part name="websiteIds" type="typens:ArrayOfString" />
|
| 320 |
+
<part name="applyRule" type="xsd:int" />
|
| 321 |
+
<part name="mamutID" type="xsd:int" />
|
| 322 |
+
</message>
|
| 323 |
+
|
| 324 |
+
<message name="mshopPromotionsCreateCatalogRuleResponse">
|
| 325 |
+
<part name="ruleId" type="xsd:int" />
|
| 326 |
+
</message>
|
| 327 |
+
|
| 328 |
+
<message name="mshopPromotionsAddIndividualCustomersRequest">
|
| 329 |
+
<part name="sessionId" type="xsd:string" />
|
| 330 |
+
<part name="customerIds" type="typens:ArrayOfString" />
|
| 331 |
+
<part name="ruleId" type="xsd:int" />
|
| 332 |
+
</message>
|
| 333 |
+
|
| 334 |
+
<message name="mshopPromotionsAddIndividualCustomersResponse">
|
| 335 |
+
<part name="status" type="xsd:string" />
|
| 336 |
+
</message>
|
| 337 |
+
|
| 338 |
+
<message name="mshopPromotionsRemoveIndividualCustomersRequest">
|
| 339 |
+
<part name="sessionId" type="xsd:string" />
|
| 340 |
+
<part name="customerIds" type="typens:ArrayOfString" />
|
| 341 |
+
<part name="ruleId" type="xsd:int" />
|
| 342 |
+
</message>
|
| 343 |
+
|
| 344 |
+
<message name="mshopPromotionsRemoveIndividualCustomersResponse">
|
| 345 |
+
<part name="status" type="xsd:string" />
|
| 346 |
+
</message>
|
| 347 |
+
|
| 348 |
+
<message name="mshopPromotionsListCustomersForRuleRequest">
|
| 349 |
+
<part name="sessionId" type="xsd:string" />
|
| 350 |
+
<part name="ruleId" type="xsd:int" />
|
| 351 |
+
</message>
|
| 352 |
+
|
| 353 |
+
<message name="mshopPromotionsListCustomersForRuleResponse">
|
| 354 |
+
<part name="catalogPromotions"
|
| 355 |
+
type="typens:mshopPromotionsListCustomersForRuleEntityArray" />
|
| 356 |
+
</message>
|
| 357 |
+
|
| 358 |
+
<message name="mshopPromotionsUpdateCatalogRuleRequest">
|
| 359 |
+
<part name="sessionId" type="xsd:string" />
|
| 360 |
+
<part name="ruleId" type="xsd:int" />
|
| 361 |
+
<part name="ruleData" type="typens:mshopPromotionsCreateCatalogRuleEntity" />
|
| 362 |
+
<part name="customerGroupIds" type="typens:ArrayOfString" />
|
| 363 |
+
<part name="websiteIds" type="typens:ArrayOfString" />
|
| 364 |
+
<part name="applyRule" type="xsd:int" />
|
| 365 |
+
<part name="mamutID" type="xsd:int" />
|
| 366 |
+
</message>
|
| 367 |
+
|
| 368 |
+
<message name="mshopPromotionsUpdateCatalogRuleResponse">
|
| 369 |
+
<part name="status" type="xsd:string" />
|
| 370 |
+
</message>
|
| 371 |
+
|
| 372 |
+
<message name="mshopPromotionsCheckCreateFixedPriceForCustomerRequest">
|
| 373 |
+
<part name="sessionId" type="xsd:string" />
|
| 374 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 375 |
+
<part name="mamutCustomerId" type="xsd:int" />
|
| 376 |
+
<part name="productSku" type="xsd:string" />
|
| 377 |
+
<part name="price" type="xsd:double" />
|
| 378 |
+
</message>
|
| 379 |
+
|
| 380 |
+
<message name="mshopPromotionsCheckCreateFixedPriceForCustomerResponse">
|
| 381 |
+
<part name="rule_id" type="xsd:int" />
|
| 382 |
+
</message>
|
| 383 |
+
|
| 384 |
+
<message name="mshopPromotionsCheckCreateDiscountForCustomerRequest">
|
| 385 |
+
<part name="sessionId" type="xsd:string" />
|
| 386 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 387 |
+
<part name="mamutCustomerId" type="xsd:int" />
|
| 388 |
+
<part name="productSku" type="xsd:string" />
|
| 389 |
+
<part name="discountPercentage" type="xsd:double" />
|
| 390 |
+
</message>
|
| 391 |
+
|
| 392 |
+
<message name="mshopPromotionsCheckCreateDiscountForCustomerResponse">
|
| 393 |
+
<part name="rule_id" type="xsd:int" />
|
| 394 |
+
</message>
|
| 395 |
+
|
| 396 |
+
|
| 397 |
+
<message name="mshopPromotionsCheckCreateDiscountCategoryForCustomerRequest">
|
| 398 |
+
<part name="sessionId" type="xsd:string" />
|
| 399 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 400 |
+
<part name="mamutCustomerId" type="xsd:int" />
|
| 401 |
+
<part name="categoryId" type="xsd:int" />
|
| 402 |
+
<part name="discountPercentage" type="xsd:double" />
|
| 403 |
+
</message>
|
| 404 |
+
|
| 405 |
+
<message
|
| 406 |
+
name="mshopPromotionsCheckCreateDiscountCategoryForCustomerResponse">
|
| 407 |
+
<part name="rule_id" type="xsd:int" />
|
| 408 |
+
<!-- <part name="rule_id" type="xsd:string" /> -->
|
| 409 |
+
</message>
|
| 410 |
+
|
| 411 |
+
<message name="mshopPromotionsCheckCreateFixedPriceForCustomerGroupRequest">
|
| 412 |
+
<part name="sessionId" type="xsd:string" />
|
| 413 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 414 |
+
<part name="customerGroup" type="xsd:string" />
|
| 415 |
+
<part name="productSku" type="xsd:string" />
|
| 416 |
+
<part name="price" type="xsd:double" />
|
| 417 |
+
</message>
|
| 418 |
+
|
| 419 |
+
<message name="mshopPromotionsCheckCreateFixedPriceForCustomerGroupResponse">
|
| 420 |
+
<part name="rule_id" type="xsd:int" />
|
| 421 |
+
</message>
|
| 422 |
+
|
| 423 |
+
<message name="mshopPromotionsCheckCreateDiscountForCustomerGroupRequest">
|
| 424 |
+
<part name="sessionId" type="xsd:string" />
|
| 425 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 426 |
+
<part name="customerGroup" type="xsd:string" />
|
| 427 |
+
<part name="productSku" type="xsd:string" />
|
| 428 |
+
<part name="discountPercentage" type="xsd:double" />
|
| 429 |
+
</message>
|
| 430 |
+
|
| 431 |
+
<message name="mshopPromotionsCheckCreateDiscountForCustomerGroupResponse">
|
| 432 |
+
<part name="rule_id" type="xsd:int" />
|
| 433 |
+
</message>
|
| 434 |
+
|
| 435 |
+
<message
|
| 436 |
+
name="mshopPromotionsCheckCreateDiscountCategoryForCustomerGroupRequest">
|
| 437 |
+
<part name="sessionId" type="xsd:string" />
|
| 438 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 439 |
+
<part name="customerGroup" type="xsd:string" />
|
| 440 |
+
<part name="categoryId" type="xsd:int" />
|
| 441 |
+
<part name="discountPercentage" type="xsd:double" />
|
| 442 |
+
</message>
|
| 443 |
+
|
| 444 |
+
<message
|
| 445 |
+
name="mshopPromotionsCheckCreateDiscountCategoryForCustomerGroupResponse">
|
| 446 |
+
<part name="rule_id" type="xsd:int" />
|
| 447 |
+
</message>
|
| 448 |
+
|
| 449 |
+
<message name="mshopPromotionsDeleteDiscountRulesExceptRequest">
|
| 450 |
+
<part name="sessionId" type="xsd:string" />
|
| 451 |
+
<part name="mamutRuleIds" type="typens:ArrayOfString" />
|
| 452 |
+
</message>
|
| 453 |
+
|
| 454 |
+
<message name="mshopPromotionsDeleteDiscountRulesExceptResponse">
|
| 455 |
+
<part name="bool" type="xsd:boolean" />
|
| 456 |
+
</message>
|
| 457 |
+
|
| 458 |
+
<message name="mshopPromotionsCheckCreateDefaultDiscountForCustomerRequest">
|
| 459 |
+
<part name="sessionId" type="xsd:string" />
|
| 460 |
+
<part name="mamutRuleId" type="xsd:int" />
|
| 461 |
+
<part name="mamutCustomerId" type="xsd:int" />
|
| 462 |
+
<part name="discountPercentage" type="xsd:double" />
|
| 463 |
+
</message>
|
| 464 |
+
|
| 465 |
+
<message name="mshopPromotionsCheckCreateDefaultDiscountForCustomerResponse">
|
| 466 |
+
<part name="rule_id" type="xsd:int" />
|
| 467 |
+
</message>
|
| 468 |
+
|
| 469 |
+
<message name="mshopPromotionsApplyDiscountRulesRequest">
|
| 470 |
+
<part name="sessionId" type="xsd:string" />
|
| 471 |
+
</message>
|
| 472 |
+
|
| 473 |
+
<message name="mshopPromotionsApplyDiscountRulesResponse">
|
| 474 |
+
<part name="status" type="xsd:boolean" />
|
| 475 |
+
</message>
|
| 476 |
+
|
| 477 |
+
|
| 478 |
+
<!-- end promotions -->
|
| 479 |
+
|
| 480 |
+
<portType name="{{var wsdl.handler}}PortType">
|
| 481 |
+
|
| 482 |
+
<!-- customer credit -->
|
| 483 |
+
<operation name="mshopCreditStop">
|
| 484 |
+
<documentation>Blocks customer from shopping in magento</documentation>
|
| 485 |
+
<input message="typens:mshopCreditStopRequest" />
|
| 486 |
+
<output message="typens:mshopCreditStopResponse" />
|
| 487 |
+
</operation>
|
| 488 |
+
|
| 489 |
+
<operation name="mshopCreditUnblock">
|
| 490 |
+
<documentation>Removes customer shopping ban in magento</documentation>
|
| 491 |
+
<input message="typens:mshopCreditUnblockRequest" />
|
| 492 |
+
<output message="typens:mshopCreditUnblockResponse" />
|
| 493 |
+
</operation>
|
| 494 |
+
|
| 495 |
+
<!-- end customer credit -->
|
| 496 |
+
|
| 497 |
+
<!-- mamut -->
|
| 498 |
+
|
| 499 |
+
<operation name="mshopMamutSetMamutId">
|
| 500 |
+
<documentation>Set the mamut ID for given customer ID</documentation>
|
| 501 |
+
<input message="typens:mshopMamutSetMamutIdRequest" />
|
| 502 |
+
<output message="typens:mshopMamutSetMamutIdResponse" />
|
| 503 |
+
</operation>
|
| 504 |
+
|
| 505 |
+
<operation name="mshopMamutRemoveMamutMapping">
|
| 506 |
+
<documentation>Remove mamut to customer mapping</documentation>
|
| 507 |
+
<input message="typens:mshopMamutRemoveMamutMappingRequest" />
|
| 508 |
+
<output message="typens:mshopMamutRemoveMamutMappingResponse" />
|
| 509 |
+
</operation>
|
| 510 |
+
|
| 511 |
+
|
| 512 |
+
|
| 513 |
+
|
| 514 |
+
|
| 515 |
+
<!-- end mamut -->
|
| 516 |
+
|
| 517 |
+
<!-- customer -->
|
| 518 |
+
<operation name="mshopMCustomerUpdatePreferedLocale">
|
| 519 |
+
<documentation>Updates the prefered locale for the given customer
|
| 520 |
+
</documentation>
|
| 521 |
+
<input message="typens:mshopMCustomerUpdatePreferedLocaleRequest" />
|
| 522 |
+
<output message="typens:mshopMCustomerUpdatePreferedLocaleResponse" />
|
| 523 |
+
</operation>
|
| 524 |
+
|
| 525 |
+
<operation name="mshopMCustomerCreateCustomerGroup">
|
| 526 |
+
<documentation>Create Customer Group by Name for given Tax Class Id
|
| 527 |
+
</documentation>
|
| 528 |
+
<input message="typens:mshopMCustomerCreateCustomerGroupRequest" />
|
| 529 |
+
<output message="typens:mshopMCustomerCreateCustomerGroupResponse" />
|
| 530 |
+
</operation>
|
| 531 |
+
|
| 532 |
+
<operation name="mshopMCustomerUpdate">
|
| 533 |
+
<documentation>Update customer information and invoice and billing adress
|
| 534 |
+
</documentation>
|
| 535 |
+
<input message="typens:mshopMCustomerUpdateRequest" />
|
| 536 |
+
<output message="typens:mshopMCustomerUpdateResponse" />
|
| 537 |
+
</operation>
|
| 538 |
+
|
| 539 |
+
<operation name="mshopMCustomerAssignCustomerToGroup">
|
| 540 |
+
<documentation>Assigns a customer to a given customer group
|
| 541 |
+
</documentation>
|
| 542 |
+
<input message="typens:mshopMCustomerAssignCustomerToGroupRequest" />
|
| 543 |
+
<output message="typens:mshopMCustomerAssignCustomerToGroupResponse" />
|
| 544 |
+
</operation>
|
| 545 |
+
|
| 546 |
+
<operation name="mshopMCustomerGetCustomersChangedSince">
|
| 547 |
+
<documentation>Get list of customers update since
|
| 548 |
+
</documentation>
|
| 549 |
+
<input message="typens:mshopMCustomerGetCustomersChangedSinceRequest" />
|
| 550 |
+
<output message="typens:mshopMCustomerGetCustomersChangedSinceResponse" />
|
| 551 |
+
</operation>
|
| 552 |
+
|
| 553 |
+
<operation name="mshopMCustomerCreate">
|
| 554 |
+
<documentation>Create customer with invoice and billing address
|
| 555 |
+
</documentation>
|
| 556 |
+
<input message="typens:mshopMCustomerCreateRequest" />
|
| 557 |
+
<output message="typens:mshopMCustomerCreateResponse" />
|
| 558 |
+
</operation>
|
| 559 |
+
<!-- end customer -->
|
| 560 |
+
|
| 561 |
+
|
| 562 |
+
<!-- promotions -->
|
| 563 |
+
|
| 564 |
+
<operation name="mshopPromotionsCheckCreateFixedPriceForCustomer">
|
| 565 |
+
<documentation>Create Fixed Price For Customer</documentation>
|
| 566 |
+
<input
|
| 567 |
+
message="typens:mshopPromotionsCheckCreateFixedPriceForCustomerRequest" />
|
| 568 |
+
<output
|
| 569 |
+
message="typens:mshopPromotionsCheckCreateFixedPriceForCustomerResponse" />
|
| 570 |
+
</operation>
|
| 571 |
+
|
| 572 |
+
<operation name="mshopPromotionsCheckCreateDiscountForCustomer">
|
| 573 |
+
<documentation>Create Discount For Customer</documentation>
|
| 574 |
+
<input message="typens:mshopPromotionsCheckCreateDiscountForCustomerRequest" />
|
| 575 |
+
<output
|
| 576 |
+
message="typens:mshopPromotionsCheckCreateDiscountForCustomerResponse" />
|
| 577 |
+
</operation>
|
| 578 |
+
|
| 579 |
+
<operation name="mshopPromotionsCheckCreateDiscountCategoryForCustomer">
|
| 580 |
+
<documentation>Create Discount For Customer For Given Category
|
| 581 |
+
</documentation>
|
| 582 |
+
<input
|
| 583 |
+
message="typens:mshopPromotionsCheckCreateDiscountCategoryForCustomerRequest" />
|
| 584 |
+
<output
|
| 585 |
+
message="typens:mshopPromotionsCheckCreateDiscountCategoryForCustomerResponse" />
|
| 586 |
+
</operation>
|
| 587 |
+
|
| 588 |
+
<operation name="mshopPromotionsCheckCreateFixedPriceForCustomerGroup">
|
| 589 |
+
<documentation>Create fixed price for customer group</documentation>
|
| 590 |
+
<input
|
| 591 |
+
message="typens:mshopPromotionsCheckCreateFixedPriceForCustomerGroupRequest" />
|
| 592 |
+
<output
|
| 593 |
+
message="typens:mshopPromotionsCheckCreateFixedPriceForCustomerGroupResponse" />
|
| 594 |
+
</operation>
|
| 595 |
+
|
| 596 |
+
<operation name="mshopPromotionsCheckCreateDiscountForCustomerGroup">
|
| 597 |
+
<documentation>Create discount for customer group</documentation>
|
| 598 |
+
<input
|
| 599 |
+
message="typens:mshopPromotionsCheckCreateDiscountForCustomerGroupRequest" />
|
| 600 |
+
<output
|
| 601 |
+
message="typens:mshopPromotionsCheckCreateDiscountForCustomerGroupResponse" />
|
| 602 |
+
</operation>
|
| 603 |
+
|
| 604 |
+
<operation
|
| 605 |
+
name="mshopPromotionsCheckCreateDiscountCategoryForCustomerGroup">
|
| 606 |
+
<documentation>Create discount on category for customer group
|
| 607 |
+
</documentation>
|
| 608 |
+
<input
|
| 609 |
+
message="typens:mshopPromotionsCheckCreateDiscountCategoryForCustomerGroupRequest" />
|
| 610 |
+
<output
|
| 611 |
+
message="typens:mshopPromotionsCheckCreateDiscountCategoryForCustomerGroupResponse" />
|
| 612 |
+
</operation>
|
| 613 |
+
|
| 614 |
+
|
| 615 |
+
<operation name="mshopPromotionsDeleteDiscountRulesExcept">
|
| 616 |
+
<documentation>Delete Discount Rules Except Passed</documentation>
|
| 617 |
+
<input message="typens:mshopPromotionsDeleteDiscountRulesExceptRequest" />
|
| 618 |
+
<output message="typens:mshopPromotionsDeleteDiscountRulesExceptResponse" />
|
| 619 |
+
</operation>
|
| 620 |
+
|
| 621 |
+
<operation name="mshopPromotionsCheckCreateDefaultDiscountForCustomer">
|
| 622 |
+
<documentation>Create rule for defualt discount on all product for customer</documentation>
|
| 623 |
+
<input message="typens:mshopPromotionsCheckCreateDefaultDiscountForCustomerRequest" />
|
| 624 |
+
<output message="typens:mshopPromotionsCheckCreateDefaultDiscountForCustomerResponse" />
|
| 625 |
+
</operation>
|
| 626 |
+
|
| 627 |
+
<operation name="mshopPromotionsApplyDiscountRules">
|
| 628 |
+
<documentation>Apply Discount Rules</documentation>
|
| 629 |
+
<input message="typens:mshopPromotionsApplyDiscountRulesRequest" />
|
| 630 |
+
<output message="typens:mshopPromotionsApplyDiscountRulesResponse" />
|
| 631 |
+
</operation>
|
| 632 |
+
<!-- end promotions -->
|
| 633 |
+
</portType>
|
| 634 |
+
<binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
|
| 635 |
+
<soap:binding style="rpc"
|
| 636 |
+
transport="http://schemas.xmlsoap.org/soap/http" />
|
| 637 |
+
|
| 638 |
+
<!-- Customer credit operations -->
|
| 639 |
+
<operation name="mshopCreditStop">
|
| 640 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 641 |
+
<input>
|
| 642 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 643 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 644 |
+
</input>
|
| 645 |
+
<output>
|
| 646 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 647 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 648 |
+
</output>
|
| 649 |
+
</operation>
|
| 650 |
+
|
| 651 |
+
<operation name="mshopCreditUnblock">
|
| 652 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 653 |
+
<input>
|
| 654 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 655 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 656 |
+
</input>
|
| 657 |
+
<output>
|
| 658 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 659 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 660 |
+
</output>
|
| 661 |
+
</operation>
|
| 662 |
+
<!-- End customer credit operations -->
|
| 663 |
+
|
| 664 |
+
<!-- prmotions operations -->
|
| 665 |
+
|
| 666 |
+
<operation name="mshopPromotionsCheckCreateFixedPriceForCustomer">
|
| 667 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 668 |
+
<input>
|
| 669 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 670 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 671 |
+
</input>
|
| 672 |
+
<output>
|
| 673 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 674 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 675 |
+
</output>
|
| 676 |
+
</operation>
|
| 677 |
+
|
| 678 |
+
<operation name="mshopPromotionsCheckCreateDiscountForCustomer">
|
| 679 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 680 |
+
<input>
|
| 681 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 682 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 683 |
+
</input>
|
| 684 |
+
<output>
|
| 685 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 686 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 687 |
+
</output>
|
| 688 |
+
</operation>
|
| 689 |
+
|
| 690 |
+
<operation name="mshopPromotionsCheckCreateDiscountCategoryForCustomer">
|
| 691 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 692 |
+
<input>
|
| 693 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 694 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 695 |
+
</input>
|
| 696 |
+
<output>
|
| 697 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 698 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 699 |
+
</output>
|
| 700 |
+
</operation>
|
| 701 |
+
|
| 702 |
+
<operation name="mshopPromotionsCheckCreateFixedPriceForCustomerGroup">
|
| 703 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 704 |
+
<input>
|
| 705 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 706 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 707 |
+
</input>
|
| 708 |
+
<output>
|
| 709 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 710 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 711 |
+
</output>
|
| 712 |
+
</operation>
|
| 713 |
+
|
| 714 |
+
<operation name="mshopPromotionsCheckCreateDiscountForCustomerGroup">
|
| 715 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 716 |
+
<input>
|
| 717 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 718 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 719 |
+
</input>
|
| 720 |
+
<output>
|
| 721 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 722 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 723 |
+
</output>
|
| 724 |
+
</operation>
|
| 725 |
+
|
| 726 |
+
<operation
|
| 727 |
+
name="mshopPromotionsCheckCreateDiscountCategoryForCustomerGroup">
|
| 728 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 729 |
+
<input>
|
| 730 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 731 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 732 |
+
</input>
|
| 733 |
+
<output>
|
| 734 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 735 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 736 |
+
</output>
|
| 737 |
+
</operation>
|
| 738 |
+
|
| 739 |
+
<operation name="mshopPromotionsDeleteDiscountRulesExcept">
|
| 740 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 741 |
+
<input>
|
| 742 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 743 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 744 |
+
</input>
|
| 745 |
+
<output>
|
| 746 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 747 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 748 |
+
</output>
|
| 749 |
+
</operation>
|
| 750 |
+
|
| 751 |
+
<operation name="mshopPromotionsCheckCreateDefaultDiscountForCustomer">
|
| 752 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 753 |
+
<input>
|
| 754 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 755 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 756 |
+
</input>
|
| 757 |
+
<output>
|
| 758 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 759 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 760 |
+
</output>
|
| 761 |
+
</operation>
|
| 762 |
+
|
| 763 |
+
|
| 764 |
+
<operation name="mshopPromotionsApplyDiscountRules">
|
| 765 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 766 |
+
<input>
|
| 767 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 768 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 769 |
+
</input>
|
| 770 |
+
<output>
|
| 771 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 772 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 773 |
+
</output>
|
| 774 |
+
</operation>
|
| 775 |
+
|
| 776 |
+
|
| 777 |
+
<!-- end prmotions operations -->
|
| 778 |
+
|
| 779 |
+
<!-- mamut operations -->
|
| 780 |
+
<operation name="mshopMamutSetMamutId">
|
| 781 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 782 |
+
<input>
|
| 783 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 784 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 785 |
+
</input>
|
| 786 |
+
<output>
|
| 787 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 788 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 789 |
+
</output>
|
| 790 |
+
</operation>
|
| 791 |
+
<operation name="mshopMamutRemoveMamutMapping">
|
| 792 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 793 |
+
<input>
|
| 794 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 795 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 796 |
+
</input>
|
| 797 |
+
<output>
|
| 798 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 799 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 800 |
+
</output>
|
| 801 |
+
</operation>
|
| 802 |
+
|
| 803 |
+
|
| 804 |
+
|
| 805 |
+
<!-- customer operations -->
|
| 806 |
+
|
| 807 |
+
<operation name="mshopMCustomerUpdatePreferedLocale">
|
| 808 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 809 |
+
<input>
|
| 810 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 811 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 812 |
+
</input>
|
| 813 |
+
<output>
|
| 814 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 815 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 816 |
+
</output>
|
| 817 |
+
</operation>
|
| 818 |
+
|
| 819 |
+
<operation name="mshopMCustomerCreateCustomerGroup">
|
| 820 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 821 |
+
<input>
|
| 822 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 823 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 824 |
+
</input>
|
| 825 |
+
<output>
|
| 826 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 827 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 828 |
+
</output>
|
| 829 |
+
</operation>
|
| 830 |
+
|
| 831 |
+
<operation name="mshopMCustomerUpdate">
|
| 832 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 833 |
+
<input>
|
| 834 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 835 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 836 |
+
</input>
|
| 837 |
+
<output>
|
| 838 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 839 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 840 |
+
</output>
|
| 841 |
+
</operation>
|
| 842 |
+
|
| 843 |
+
<operation name="mshopMCustomerAssignCustomerToGroup">
|
| 844 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 845 |
+
<input>
|
| 846 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 847 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 848 |
+
</input>
|
| 849 |
+
<output>
|
| 850 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 851 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 852 |
+
</output>
|
| 853 |
+
</operation>
|
| 854 |
+
|
| 855 |
+
<operation name="mshopMCustomerGetCustomersChangedSince">
|
| 856 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 857 |
+
<input>
|
| 858 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 859 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 860 |
+
</input>
|
| 861 |
+
<output>
|
| 862 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 863 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 864 |
+
</output>
|
| 865 |
+
</operation>
|
| 866 |
+
|
| 867 |
+
<operation name="mshopMCustomerCreate">
|
| 868 |
+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
|
| 869 |
+
<input>
|
| 870 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 871 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 872 |
+
</input>
|
| 873 |
+
<output>
|
| 874 |
+
<soap:body namespace="urn:{{var wsdl.name}}" use="encoded"
|
| 875 |
+
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
|
| 876 |
+
</output>
|
| 877 |
+
</operation>
|
| 878 |
+
|
| 879 |
+
<!-- end customer operations -->
|
| 880 |
+
</binding>
|
| 881 |
+
<service name="{{var wsdl.name}}Service">
|
| 882 |
+
<port name="{{var wsdl.handler}}Port" binding="typens:{{var wsdl.handler}}Binding">
|
| 883 |
+
<soap:address location="{{var wsdl.url}}" />
|
| 884 |
+
</port>
|
| 885 |
+
</service>
|
| 886 |
+
</definitions>
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-install-1.2.2.php
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$installer = $this;
|
| 3 |
+
|
| 4 |
+
$installer->startSetup();
|
| 5 |
+
|
| 6 |
+
/**
|
| 7 |
+
* new Mamut status
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
|
| 11 |
+
$code = 'mshop_mamut';
|
| 12 |
+
$label = "Mamut";
|
| 13 |
+
|
| 14 |
+
|
| 15 |
+
$state = "complete";
|
| 16 |
+
$is_default = 1;
|
| 17 |
+
|
| 18 |
+
$status = Mage::getModel('sales/order_status')->load($code);
|
| 19 |
+
if(!$status->getStatus()){
|
| 20 |
+
|
| 21 |
+
$data = array("is_new"=> 1, "status" => $code, "label" => $label, "store_labels" => Array ());
|
| 22 |
+
$status->setData($data)->setStatus($code);
|
| 23 |
+
try{
|
| 24 |
+
$status->save();
|
| 25 |
+
}catch(Exception $ex){
|
| 26 |
+
Mage::log($ex->getMessage());
|
| 27 |
+
|
| 28 |
+
}
|
| 29 |
+
try{
|
| 30 |
+
$status->assignState($state, $isDefault);
|
| 31 |
+
|
| 32 |
+
}catch(Exception $ex){
|
| 33 |
+
Mage::log($ex->getMessage());
|
| 34 |
+
|
| 35 |
+
}
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
/**
|
| 39 |
+
*
|
| 40 |
+
*
|
| 41 |
+
*
|
| 42 |
+
* Mshop Blocked creation attribute
|
| 43 |
+
*
|
| 44 |
+
*/
|
| 45 |
+
|
| 46 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
| 47 |
+
|
| 48 |
+
//$setup->removeAttribute( 'customer', 'mshop_bloked' );
|
| 49 |
+
|
| 50 |
+
$entityTypeId = $setup->getEntityTypeId('customer');
|
| 51 |
+
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
|
| 52 |
+
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
|
| 53 |
+
|
| 54 |
+
$setup->addAttribute('customer', 'mshop_bloked', array(
|
| 55 |
+
'input' => 'text',
|
| 56 |
+
'type' => 'int',
|
| 57 |
+
'label' => 'Mshop Blocked',
|
| 58 |
+
'visible' => 1,
|
| 59 |
+
'required' => 0,
|
| 60 |
+
'user_defined' => 1,
|
| 61 |
+
));
|
| 62 |
+
|
| 63 |
+
$setup->addAttributeToGroup(
|
| 64 |
+
$entityTypeId,
|
| 65 |
+
$attributeSetId,
|
| 66 |
+
$attributeGroupId,
|
| 67 |
+
'mshop_bloked',
|
| 68 |
+
'999' //sort_order
|
| 69 |
+
);
|
| 70 |
+
|
| 71 |
+
/*
|
| 72 |
+
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'mshop_bloked');
|
| 73 |
+
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
|
| 74 |
+
$oAttribute->save();
|
| 75 |
+
*/
|
| 76 |
+
|
| 77 |
+
/* add attribute to order */
|
| 78 |
+
//$installer->addAttribute('order', 'reference_order', array('type'=>'varchar'));
|
| 79 |
+
|
| 80 |
+
|
| 81 |
+
/**
|
| 82 |
+
* creation of two mshop tables
|
| 83 |
+
*
|
| 84 |
+
*/
|
| 85 |
+
$installer->run("
|
| 86 |
+
DROP TABLE IF EXISTS {$this->getTable('ecomwise_catalogpromotions_mapping')};
|
| 87 |
+
CREATE TABLE {$this->getTable('ecomwise_catalogpromotions_mapping')} (
|
| 88 |
+
`rule_id` int(11) NOT NULL default '0',
|
| 89 |
+
`mamut_id` int(11) NOT NULL default '0',
|
| 90 |
+
`mamut_rule_id` int(11) NOT NULL default '0',
|
| 91 |
+
UNIQUE KEY `ecomwise_rule_mamut_catalog` (`rule_id`,`mamut_id`)
|
| 92 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 93 |
+
|
| 94 |
+
DROP TABLE IF EXISTS {$this->getTable('ecomwise_customermamut_mapping')};
|
| 95 |
+
CREATE TABLE {$this->getTable('ecomwise_customermamut_mapping')} (
|
| 96 |
+
`customer_id` int(11) NOT NULL default '0',
|
| 97 |
+
`mamut_id` int(11) NOT NULL default '0',
|
| 98 |
+
UNIQUE KEY `ecomwise_mamut_customer` (`mamut_id`,`customer_id`)
|
| 99 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 100 |
+
");
|
| 101 |
+
|
| 102 |
+
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
|
| 106 |
+
$installer->endSetup();
|
| 107 |
+
|
| 108 |
+
|
| 109 |
+
|
| 110 |
+
|
| 111 |
+
$installer1 = new Mage_Sales_Model_Mysql4_Setup('core_setup');
|
| 112 |
+
|
| 113 |
+
$installer1->startSetup();
|
| 114 |
+
|
| 115 |
+
$installer1->addAttribute('order', 'reference_order', array('type'=>'varchar'));
|
| 116 |
+
|
| 117 |
+
$installer1->endSetup();
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.0-1.2.1.php
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$installer = $this;
|
| 3 |
+
$installer->startSetup();
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
*
|
| 7 |
+
* Adding attribute to customer entity
|
| 8 |
+
*
|
| 9 |
+
*
|
| 10 |
+
*
|
| 11 |
+
*/
|
| 12 |
+
|
| 13 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
| 14 |
+
|
| 15 |
+
// $setup->removeAttribute( 'customer', 'mshop_bloked' );
|
| 16 |
+
|
| 17 |
+
$entityTypeId = $setup->getEntityTypeId('customer');
|
| 18 |
+
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
|
| 19 |
+
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
|
| 20 |
+
|
| 21 |
+
$setup->addAttribute('customer', 'mshop_bloked', array(
|
| 22 |
+
'input' => 'text',
|
| 23 |
+
'type' => 'int',
|
| 24 |
+
'label' => 'Mshop Blocked',
|
| 25 |
+
'visible' => 1,
|
| 26 |
+
'required' => 0,
|
| 27 |
+
'user_defined' => 1,
|
| 28 |
+
));
|
| 29 |
+
|
| 30 |
+
$setup->addAttributeToGroup(
|
| 31 |
+
$entityTypeId,
|
| 32 |
+
$attributeSetId,
|
| 33 |
+
$attributeGroupId,
|
| 34 |
+
'mshop_bloked',
|
| 35 |
+
'999' //sort_order
|
| 36 |
+
);
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.1-1.2.2.php
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$installer = $this;
|
| 3 |
+
$installer->startSetup();
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
*
|
| 7 |
+
*
|
| 8 |
+
* Adding new order status
|
| 9 |
+
*
|
| 10 |
+
*/
|
| 11 |
+
|
| 12 |
+
$code = 'mshop_mamut';
|
| 13 |
+
$label = "Mamut";
|
| 14 |
+
|
| 15 |
+
|
| 16 |
+
$state = "complete";
|
| 17 |
+
$is_default = 1;
|
| 18 |
+
|
| 19 |
+
$status = Mage::getModel('sales/order_status')->load($code);
|
| 20 |
+
if(!$status->getStatus()){
|
| 21 |
+
|
| 22 |
+
$data = array("is_new"=> 1, "status" => $code, "label" => $label, "store_labels" => Array ());
|
| 23 |
+
$status->setData($data)->setStatus($code);
|
| 24 |
+
try{
|
| 25 |
+
$status->save();
|
| 26 |
+
}catch(Exception $ex){
|
| 27 |
+
Mage::log($ex->getMessage());
|
| 28 |
+
|
| 29 |
+
}
|
| 30 |
+
try{
|
| 31 |
+
$status->assignState($state, $isDefault);
|
| 32 |
+
|
| 33 |
+
}catch(Exception $ex){
|
| 34 |
+
Mage::log($ex->getMessage());
|
| 35 |
+
|
| 36 |
+
}
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
$installer->endSetup();
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.2-1.2.3.php
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$installer = $this;
|
| 3 |
+
$installer->startSetup();
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
/**
|
| 7 |
+
* creation of mamut contact groups table
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
|
| 11 |
+
$installer->run("
|
| 12 |
+
DROP TABLE IF EXISTS {$this->getTable('ecomwise_mamut_contact_groups')};
|
| 13 |
+
CREATE TABLE {$this->getTable('ecomwise_mamut_contact_groups')} (
|
| 14 |
+
`group_id` int(11) NOT NULL AUTO_INCREMENT,
|
| 15 |
+
`mamut_contact_group_name` varchar(255) NOT NULL default '0',
|
| 16 |
+
PRIMARY KEY(group_id)
|
| 17 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 18 |
+
INSERT INTO {$this->getTable('ecomwise_mamut_contact_groups')} (`mamut_contact_group_name`) VALUES('MAMUT NOT LOGGED IN')
|
| 19 |
+
");
|
| 20 |
+
|
| 21 |
+
|
| 22 |
+
/**
|
| 23 |
+
*
|
| 24 |
+
*
|
| 25 |
+
*
|
| 26 |
+
* mamut contacts groups customer attribute
|
| 27 |
+
*
|
| 28 |
+
*/
|
| 29 |
+
|
| 30 |
+
$setup = new Mage_Eav_Model_Entity_Setup('core_setup');
|
| 31 |
+
|
| 32 |
+
//$setup->removeAttribute( 'customer', 'mshop_bloked' );
|
| 33 |
+
|
| 34 |
+
$entityTypeId = $setup->getEntityTypeId('customer');
|
| 35 |
+
$attributeSetId = $setup->getDefaultAttributeSetId($entityTypeId);
|
| 36 |
+
$attributeGroupId = $setup->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
|
| 37 |
+
|
| 38 |
+
$setup->addAttribute('customer', 'mamut_contact_groups', array(
|
| 39 |
+
'label' => 'Mamut Contact Groups',
|
| 40 |
+
'type' => 'text',
|
| 41 |
+
'input' => 'multiselect',
|
| 42 |
+
'backend' => 'mshopb2b/customerattribute_backend_mamutgroups',
|
| 43 |
+
'input_renderer' => 'mshopb2b/customerattribute_helper_mamutgroups',
|
| 44 |
+
'source' => 'mshopb2b/customerattribute_source_mamutgroups',
|
| 45 |
+
'global' => Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE,
|
| 46 |
+
'visible' => true,
|
| 47 |
+
'required' => false,
|
| 48 |
+
'user_defined' => false,
|
| 49 |
+
'searchable' => false,
|
| 50 |
+
'filterable' => false,
|
| 51 |
+
'comparable' => false,
|
| 52 |
+
'visible_on_front' => false,
|
| 53 |
+
'visible_in_advanced_search' => false,
|
| 54 |
+
'unique' => false
|
| 55 |
+
|
| 56 |
+
));
|
| 57 |
+
|
| 58 |
+
|
| 59 |
+
$setup->addAttributeToGroup(
|
| 60 |
+
$entityTypeId,
|
| 61 |
+
$attributeSetId,
|
| 62 |
+
$attributeGroupId,
|
| 63 |
+
'mamut_contact_groups',
|
| 64 |
+
'999' //sort_order
|
| 65 |
+
);
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
$oAttribute = Mage::getSingleton('eav/config')->getAttribute('customer', 'mamut_contact_groups');
|
| 69 |
+
$oAttribute->setData('used_in_forms', array('adminhtml_customer'));
|
| 70 |
+
$oAttribute->setData('sort_order', 999);
|
| 71 |
+
$oAttribute->save();
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
$installer->endSetup();
|
| 75 |
+
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.3-1.2.4.php
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
|
| 3 |
+
$installer = $this;
|
| 4 |
+
$installer->startSetup();
|
| 5 |
+
|
| 6 |
+
$installer->run("
|
| 7 |
+
|
| 8 |
+
ALTER TABLE {$this->getTable('ecomwise_customermamut_mapping')}
|
| 9 |
+
CHANGE `customer_id` `customer_id` INT( 10 ) UNSIGNED NOT NULL ;
|
| 10 |
+
|
| 11 |
+
ALTER TABLE {$this->getTable('ecomwise_customermamut_mapping')}
|
| 12 |
+
ADD CONSTRAINT `CUSTOMER_MAMUT_MAPPING_CO_CUSTOM` FOREIGN KEY (`customer_id`)
|
| 13 |
+
REFERENCES {$this->getTable('customer_entity')} (`entity_id`)
|
| 14 |
+
ON DELETE CASCADE ON UPDATE CASCADE;
|
| 15 |
+
|
| 16 |
+
|
| 17 |
+
");
|
| 18 |
+
|
| 19 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.4-1.2.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/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.5-1.2.6.php
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
$installer = $this;
|
| 3 |
+
$installer->startSetup();
|
| 4 |
+
|
| 5 |
+
$installer->run("
|
| 6 |
+
|
| 7 |
+
ALTER TABLE {$this->getTable('customer/customer_group')} MODIFY customer_group_code VARCHAR(100) ;
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
");
|
| 11 |
+
|
| 12 |
+
$installer->endSetup();
|
app/code/community/Ecomwise/MshopB2B/sql/mshopb2b_setup/mysql4-upgrade-1.2.6-1.2.7.php
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/*
|
| 3 |
+
* Upgrade script for transfering extension from Experius to Ecomwise namesapce
|
| 4 |
+
*
|
| 5 |
+
*/
|
| 6 |
+
|
| 7 |
+
$installer = $this;
|
| 8 |
+
$installer->startSetup();
|
| 9 |
+
|
| 10 |
+
//ecomwise_catalogpromotions_mapping table moving
|
| 11 |
+
|
| 12 |
+
if (!$installer->tableExists($installer->getTable('ecomwise_catalogpromotions_mapping'))){
|
| 13 |
+
|
| 14 |
+
$installer->run("
|
| 15 |
+
CREATE TABLE {$this->getTable('ecomwise_catalogpromotions_mapping')} (
|
| 16 |
+
`rule_id` int(11) NOT NULL default '0',
|
| 17 |
+
`mamut_id` int(11) NOT NULL default '0',
|
| 18 |
+
`mamut_rule_id` int(11) NOT NULL default '0',
|
| 19 |
+
UNIQUE KEY `ecomwise_rule_mamut_catalog` (`rule_id`,`mamut_id`)
|
| 20 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 21 |
+
");
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
|
| 25 |
+
if ($installer->tableExists($installer->getTable('experius_catalogpromotions_mapping')) && $installer->tableExists($installer->getTable('ecomwise_catalogpromotions_mapping'))) {
|
| 26 |
+
|
| 27 |
+
$installer->run("INSERT INTO {$this->getTable('ecomwise_catalogpromotions_mapping')} (`rule_id`, `mamut_id`, `mamut_rule_id` ) SELECT `rule_id`, `mamut_id`, `mamut_rule_id` FROM {$this->getTable('experius_catalogpromotions_mapping')};");
|
| 28 |
+
|
| 29 |
+
}
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
//ecomwise_customermamut_mapping table moving
|
| 34 |
+
|
| 35 |
+
if (!$installer->tableExists($installer->getTable('ecomwise_customermamut_mapping'))){
|
| 36 |
+
|
| 37 |
+
$installer->run("
|
| 38 |
+
CREATE TABLE {$this->getTable('ecomwise_customermamut_mapping')} (
|
| 39 |
+
`customer_id` int(11) NOT NULL default '0',
|
| 40 |
+
`mamut_id` int(11) NOT NULL default '0',
|
| 41 |
+
UNIQUE KEY `ecomwise_mamut_customer` (`mamut_id`,`customer_id`)
|
| 42 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 43 |
+
");
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
|
| 47 |
+
if ($installer->tableExists($installer->getTable('experius_customermamut_mapping')) && $installer->tableExists($installer->getTable('ecomwise_customermamut_mapping'))) {
|
| 48 |
+
|
| 49 |
+
$installer->run("INSERT INTO {$this->getTable('ecomwise_customermamut_mapping')} (`customer_id`, `mamut_id`) SELECT `customer_id`, `mamut_id` FROM {$this->getTable('experius_customermamut_mapping')};");
|
| 50 |
+
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
//ecomwise_mamut_contact_groups mamut_contact_group_name table moving
|
| 55 |
+
|
| 56 |
+
if (!$installer->tableExists($installer->getTable('ecomwise_mamut_contact_groups'))){
|
| 57 |
+
|
| 58 |
+
$installer->run("
|
| 59 |
+
CREATE TABLE {$this->getTable('ecomwise_mamut_contact_groups')} (
|
| 60 |
+
`group_id` int(11) NOT NULL AUTO_INCREMENT,
|
| 61 |
+
`mamut_contact_group_name` varchar(255) NOT NULL default '0',
|
| 62 |
+
PRIMARY KEY(group_id)
|
| 63 |
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
| 64 |
+
");
|
| 65 |
+
}
|
| 66 |
+
|
| 67 |
+
|
| 68 |
+
if ($installer->tableExists($installer->getTable('experius_mamut_contact_groups')) && $installer->tableExists($installer->getTable('ecomwise_mamut_contact_groups'))) {
|
| 69 |
+
|
| 70 |
+
$installer->run("INSERT INTO {$this->getTable('ecomwise_mamut_contact_groups')} (`group_id`, `mamut_contact_group_name`) SELECT `group_id`, `mamut_contact_group_name` FROM {$this->getTable('experius_mamut_contact_groups')};");
|
| 71 |
+
|
| 72 |
+
}
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
|
| 78 |
+
$installer->endSetup();
|
app/etc/modules/Ecomwise_MshopB2B.xml
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
+
<config>
|
| 3 |
+
<modules>
|
| 4 |
+
<Ecomwise_MshopB2B>
|
| 5 |
+
<active>true</active>
|
| 6 |
+
<codePool>community</codePool>
|
| 7 |
+
</Ecomwise_MshopB2B>
|
| 8 |
+
</modules>
|
| 9 |
+
</config>
|
| 10 |
+
|
package.xml
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?xml version="1.0"?>
|
| 2 |
+
<package>
|
| 3 |
+
<name>Ecomwise_MshopB2B</name>
|
| 4 |
+
<version>1.2.7</version>
|
| 5 |
+
<stability>stable</stability>
|
| 6 |
+
<license uri="http://opensource.org/licenses/osl-3.0.php">OSL-3.0</license>
|
| 7 |
+
<channel>community</channel>
|
| 8 |
+
<extends/>
|
| 9 |
+
<summary>Ecomwise MshopB2B</summary>
|
| 10 |
+
<description>Ecomwise MshopB2B</description>
|
| 11 |
+
<notes>1.2.7</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>15:49:54</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir><dir name="Ecomwise"><dir name="MshopB2B"><dir name="Block"><dir name="Adminhtml"><file name="EcomwiseCustomerGrid.php" hash="dbfdbc29f70a50600618b20341bf3a12"/><file name="EcomwisePromoCatalogEditTab.php" hash="785bd9d853cbbbe3caa9d1027060f209"/><file name="EcomwisePromoCatalogGrid.php" hash="52411ba7be17f7b495fb63394ea94d9a"/><dir name="Grid"><dir name="Filter"><file name="Contactgroup.php" hash="cec0beca848789610e25ccd5891766fb"/></dir></dir><dir name="Sales"><dir name="Order"><dir name="Create"><dir name="Shipping"><dir name="Method"><file name="Form.php" hash="c5977ae471de555a2e4a210679c447c4"/></dir></dir></dir></dir></dir></dir><dir name="Customerattribute"><dir name="Helper"><file name="Mamutgroups.php" hash="9036bcaeaa67259bf1d49cb15f4ac5df"/></dir></dir><dir name="Renderers"><file name="CompanyRenderer.php" hash="49f213abd6fe5b4f05909c6901572183"/><file name="GridCatalogCustomer.php" hash="672d9be8ec9667805c1e7a10ccb442ca"/><file name="GridCatalogFilterCustomer.php" hash="15155bb258f4b7e35da0a55b6cd2182f"/><file name="GridCatalogFilterCustomerGroup.php" hash="c2aa13c02966b9ce93faefd81522cf7a"/><file name="GridCatalogRenderer.php" hash="3ca1a30b7d2dc06e21d17c472f5677f2"/><file name="MamutContactRenderer.php" hash="d0db98bfc0815a7432df50ab3db4787b"/><file name="MamutIDRenderer.php" hash="ecd23837baf4112d7b4456668392b74a"/></dir><dir name="System"><dir name="Config"><file name="Version.php" hash="6449b71409bb8cfaea04a70534cff12a"/></dir></dir></dir><dir name="Helper"><file name="Contactgroup.php" hash="4caa21b7e1623f3d1c88125003faff1f"/><file name="Data.php" hash="c9cf85fb852b41baa53e5806efee3903"/></dir><dir name="Model"><dir name="Api"><dir name="Credit"><dir name="Api"><file name="V2.php" hash="d8fdc8c73367da7d9b78abea4d49008e"/></dir><file name="Api.php" hash="de038c9fbee92d85e201a53b51e0f9e5"/></dir><dir name="Customer"><dir name="Api"><file name="V2.php" hash="b41cb49d04a3e134c3fefa43545fae9a"/></dir><file name="Api.php" hash="0c7646cd225b7fc6cf17595e842f8ecb"/></dir><dir name="Mamut"><dir name="Api"><file name="V2.php" hash="118ed9a79c1a2d3f639caf638d06768d"/></dir><file name="Api.php" hash="19b4d27f36359544da44c3be58e49b46"/></dir><dir name="Promotions"><dir name="Api"><file name="V2.php" hash="62bee863ead7b665da1256ea0a6804ec"/></dir><file name="Api.php" hash="1866793a8f31a231e9699bdd89ee6c9b"/></dir></dir><dir name="Carrier"><file name="Mamutshipping.php" hash="aff9241413d2d1bd5c12fd382dee38ce"/></dir><file name="Catalogpromotions.php" hash="86a9138123b2357b9accaa9d65c10e47"/><dir name="Collections"><file name="RuleCollection.php" hash="48dbee3276cce0cf0cfe6d584ca3a9b9"/></dir><dir name="Customer"><file name="Group.php" hash="ac7837ccbb5430b91266e3aed3ade57a"/></dir><dir name="Customerattribute"><dir name="Backend"><file name="Mamutgroups.php" hash="c3b3d585e21fb8e0ae01b49592831b94"/></dir><dir name="Source"><file name="Mamutgroups.php" hash="d59f28e5923c580f530761bb49ca52e2"/></dir></dir><file name="Observer.php" hash="8bc52fd129ef52d979f0a70d4c38c0c6"/><dir name="Payment"><file name="Mamutbilling.php" hash="0dc20d35f0bf8cf33e521074eddf68a0"/></dir><dir name="Rules"><file name="CatalogRule.php" hash="4a4c8737022508d282e47eccf9ffaabc"/><file name="Combine.php" hash="e9cdfef163403a8ca9b4eef9cc656d74"/><file name="MySQL4Rule.php" hash="e29ac19975ad6d73e022f6bd661bbc4e"/></dir><dir name="Sales"><dir name="Tax"><file name="Subtotal.php" hash="560a10b6a7847993968f508837ae5c94"/></dir></dir><dir name="SalesRule"><file name="Validator.php" hash="9707ee7e75d545b565831bb9b10b817f"/></dir></dir><dir name="controllers"><file name="CartController.php" hash="db4fdd17bd474235d58d012bcf387c07"/><file name="OrderController.php" hash="bacc8655b2f54091133146b817182a57"/></dir><dir name="etc"><file name="api.xml" hash="03e4eae894a0e2f14d8cecf32cb4d227"/><file name="config.xml" hash="9b0fb765c69d08b963b2857d0f8921db"/><file name="system.xml" hash="fb154f0a77744f36d31e275fa36aadd8"/><file name="wsdl.xml" hash="8715eef084c6bce978d8544745745d24"/></dir><dir name="sql"><dir name="mshopb2b_setup"><file name="mysql4-install-1.2.2.php" hash="7a5120ba5d69b252f7a7668c11f0ce6a"/><file name="mysql4-upgrade-1.2.0-1.2.1.php" hash="ee25c95cf05cee4ab4ecaaeca9cb381a"/><file name="mysql4-upgrade-1.2.1-1.2.2.php" hash="c1f43a0e7065d3f71d81614e5b81fa41"/><file name="mysql4-upgrade-1.2.2-1.2.3.php" hash="b119975067668f385ec3bbb33be5c86d"/><file name="mysql4-upgrade-1.2.3-1.2.4.php" hash="ca4dba23fec7787507fbe2dc493a1c40"/><file name="mysql4-upgrade-1.2.4-1.2.5.php" hash="80d414d61e6f01d8dcad3c0238434863"/><file name="mysql4-upgrade-1.2.5-1.2.6.php" hash="9d5dacc360981760bcc2af8039c407a0"/><file name="mysql4-upgrade-1.2.6-1.2.7.php" hash="b2de6b3de725a3e41f0bb3b0d98f84ff"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir><dir name="modules"><file name="Ecomwise_MshopB2B.xml" hash="5a67f895af3bf287f278b376c6219fe6"/></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>
|
