shopgate_module - Version 2.9.19

Version Notes

Shopgate Modul

Download this release

Release Info

Developer Magento Core Team
Extension shopgate_module
Version 2.9.19
Comparing to
See all releases


Code changes from version 2.9.18 to 2.9.19

Files changed (33) hide show
  1. app/code/community/Shopgate/Framework/Block/Payment/MobilePayment.php +2 -6
  2. app/code/community/Shopgate/Framework/Helper/Config.php +17 -2
  3. app/code/community/Shopgate/Framework/Helper/Coupon.php +53 -22
  4. app/code/community/Shopgate/Framework/Helper/Import/Order.php +19 -19
  5. app/code/community/Shopgate/Framework/Model/Export/Product/Xml.php +7 -1
  6. app/code/community/Shopgate/Framework/Model/Observer.php +14 -34
  7. app/code/community/Shopgate/Framework/Model/Payment/Abstract.php +14 -7
  8. app/code/community/Shopgate/Framework/Model/Payment/Pp/Abstract.php +2 -2
  9. app/code/community/Shopgate/Framework/Model/Payment/Pp/Wspp.php +24 -4
  10. app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod.php +64 -0
  11. app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Abstract.php +42 -0
  12. app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Msp.php +36 -0
  13. app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Native.php +36 -0
  14. app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Phoenix107.php +36 -0
  15. app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Phoenix108.php +36 -0
  16. app/code/community/Shopgate/Framework/Model/Payment/Simple/Invoice.php +44 -0
  17. app/code/community/Shopgate/Framework/Model/Payment/Simple/Mws.php +3 -2
  18. app/code/community/Shopgate/Framework/Model/Payment/Simple/Paypal.php +21 -2
  19. app/code/community/Shopgate/Framework/Model/Payment/{Pp/Paypal.php → Simple/Paypal/Express.php} +2 -14
  20. app/code/community/Shopgate/Framework/Model/Payment/Simple/Paypal/Standard.php +93 -0
  21. app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay.php +60 -0
  22. app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Abstract.php +30 -0
  23. app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Checkmo.php +37 -0
  24. app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Native.php +36 -0
  25. app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Phoenix.php +55 -0
  26. app/code/community/Shopgate/Framework/Model/Payment/Simple/Shopgate.php +57 -0
  27. app/code/community/Shopgate/Framework/Model/Payment/Simple/Sue/Sue118.php +1 -0
  28. app/code/community/Shopgate/Framework/Model/Payment/Simple/Sue/Sue300.php +1 -0
  29. app/code/community/Shopgate/Framework/Model/Shopgate/Plugin.php +181 -222
  30. app/code/community/Shopgate/Framework/changelog.txt +12 -0
  31. app/code/community/Shopgate/Framework/etc/config.xml +2 -12
  32. app/design/adminhtml/default/default/template/shopgate/payment/mobile_payment.phtml +1 -1
  33. package.xml +6 -6
app/code/community/Shopgate/Framework/Block/Payment/MobilePayment.php CHANGED
@@ -101,16 +101,12 @@ class Shopgate_Framework_Block_Payment_MobilePayment extends Mage_Payment_Block_
101
  * Helper function to print PaymentInfo
102
  * recursively
103
  *
104
- * @param $list
105
  * @param $html - don't pass anything, recrusive helper
106
  * @return string
107
  */
108
- public function printPaymentInfo($list = null, $html = '')
109
  {
110
- if (empty($list)) {
111
- $list = $this->getPaymentInfos();
112
- }
113
-
114
  if (is_array($list)) {
115
  foreach ($list as $_key => $_value) {
116
  if (is_array($_value)) {
101
  * Helper function to print PaymentInfo
102
  * recursively
103
  *
104
+ * @param $list - paymentInfo array
105
  * @param $html - don't pass anything, recrusive helper
106
  * @return string
107
  */
108
+ public function printPaymentInfo($list, $html = '')
109
  {
 
 
 
 
110
  if (is_array($list)) {
111
  foreach ($list as $_key => $_value) {
112
  if (is_array($_value)) {
app/code/community/Shopgate/Framework/Helper/Config.php CHANGED
@@ -46,6 +46,14 @@ class Shopgate_Framework_Helper_Config extends Mage_Core_Helper_Abstract
46
  */
47
  const ENTERPRISE_EDITION = 'Enterprise';
48
 
 
 
 
 
 
 
 
 
49
  /**
50
  * When PayPal UI was updated
51
  * @var string
@@ -72,6 +80,7 @@ class Shopgate_Framework_Helper_Config extends Mage_Core_Helper_Abstract
72
  */
73
  public function __construct()
74
  {
 
75
  $this->_magentoVersion1701 = ($this->getEdition() == 'Enterprise') ? '1.12.0.2' : '1.7.0.1';
76
  $this->_magentoVersion15 = ($this->getEdition() == 'Enterprise') ? '1.9.1.0' : '1.5';
77
  $this->_magentoVersion1410 = ($this->getEdition() == 'Enterprise') ? '1.9.0.0' : '1.4.1.0';
@@ -99,8 +108,6 @@ class Shopgate_Framework_Helper_Config extends Mage_Core_Helper_Abstract
99
  }
100
 
101
  /**
102
- * TODO: redo comparison check to be scalable
103
- *
104
  * @param string $version - magento version e.g "1.9.1.1"
105
  * @return bool
106
  */
@@ -109,6 +116,14 @@ class Shopgate_Framework_Helper_Config extends Mage_Core_Helper_Abstract
109
  return version_compare(Mage::getVersion(), $version, "<");
110
  }
111
 
 
 
 
 
 
 
 
 
112
  /**
113
  * compare version if it is lower than 1.7.0.1
114
  *
46
  */
47
  const ENTERPRISE_EDITION = 'Enterprise';
48
 
49
+ /**
50
+ * When native COD & Bank payments
51
+ * were introduced
52
+ *
53
+ * @var string
54
+ */
55
+ protected $_magentoVersion1700 = '';
56
+
57
  /**
58
  * When PayPal UI was updated
59
  * @var string
80
  */
81
  public function __construct()
82
  {
83
+ $this->_magentoVersion1700 = ($this->getEdition() == 'Enterprise') ? '1.12.0.0' : '1.7.0.0';
84
  $this->_magentoVersion1701 = ($this->getEdition() == 'Enterprise') ? '1.12.0.2' : '1.7.0.1';
85
  $this->_magentoVersion15 = ($this->getEdition() == 'Enterprise') ? '1.9.1.0' : '1.5';
86
  $this->_magentoVersion1410 = ($this->getEdition() == 'Enterprise') ? '1.9.0.0' : '1.4.1.0';
108
  }
109
 
110
  /**
 
 
111
  * @param string $version - magento version e.g "1.9.1.1"
112
  * @return bool
113
  */
116
  return version_compare(Mage::getVersion(), $version, "<");
117
  }
118
 
119
+ /**
120
+ * @return bool
121
+ */
122
+ public function getIsMagentoVersionLower1700()
123
+ {
124
+ return $this->getIsMagentoVersionLower($this->_magentoVersion1700);
125
+ }
126
+
127
  /**
128
  * compare version if it is lower than 1.7.0.1
129
  *
app/code/community/Shopgate/Framework/Helper/Coupon.php CHANGED
@@ -39,6 +39,8 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
39
  const COUPON_ATTRIUBTE_SET_NAME = 'Shopgate Coupon';
40
  const COUPON_PRODUCT_SKU = 'shopgate-coupon';
41
 
 
 
42
  /**
43
  * Determines if a product is a Shopgate Coupon
44
  *
@@ -47,12 +49,12 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
47
  */
48
  public function isShopgateCoupon(Mage_Catalog_Model_Product $product)
49
  {
50
- $attributeSetModel = Mage::getModel("eav/entity_attribute_set")
51
- ->load($product->getAttributeSetId());
52
 
53
- if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
54
- && $attributeSetModel->getAttributeSetName() == self::COUPON_ATTRIUBTE_SET_NAME
55
- ) {
56
  return true;
57
  }
58
 
@@ -71,8 +73,9 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
71
  $product->setData('tax_class_id', $this->_getTaxClassId());
72
  $product->setData('attribute_set_id', $this->_getAttributeSetId());
73
  $product->setData('stock_data', $this->_getStockData());
74
- $product->setData('visibility', 1);
75
- $product->setData('status', 1);
 
76
 
77
  return $product;
78
  }
@@ -94,11 +97,7 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
94
  */
95
  protected function _getAttributeSetId()
96
  {
97
- if ($attributeSet = $this->_getShopgateCouponAttributeSet()) {
98
- return $attributeSet->getId();
99
- } else {
100
- return $this->_createShopgateCouponAttributeSet()->getId();
101
- }
102
  }
103
 
104
  /**
@@ -106,15 +105,18 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
106
  */
107
  protected function _getShopgateCouponAttributeSet()
108
  {
109
- $collection = Mage::getModel('eav/entity_attribute_set')
110
- ->getCollection()
111
- ->addFieldToFilter('attribute_set_name', self::COUPON_ATTRIUBTE_SET_NAME);
112
-
113
- if (count($collection->getItems())) {
114
- return $collection->getFirstItem();
 
 
 
 
115
  }
116
-
117
- return null;
118
  }
119
 
120
  /**
@@ -130,7 +132,7 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
130
  ->setAttributeSetName(self::COUPON_ATTRIUBTE_SET_NAME);
131
 
132
  $attributeSet->validate();
133
- $attributeSet->save();
134
 
135
  return $this->_getShopgateCouponAttributeSet();
136
  }
@@ -138,7 +140,7 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
138
  /**
139
  * Delivers an stock_item Dummy Object
140
  *
141
- * @return multitype:number
142
  */
143
  protected function _getStockData()
144
  {
@@ -154,4 +156,33 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
154
 
155
  return $stockData;
156
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  }
39
  const COUPON_ATTRIUBTE_SET_NAME = 'Shopgate Coupon';
40
  const COUPON_PRODUCT_SKU = 'shopgate-coupon';
41
 
42
+ protected $_attributeSet = null;
43
+
44
  /**
45
  * Determines if a product is a Shopgate Coupon
46
  *
49
  */
50
  public function isShopgateCoupon(Mage_Catalog_Model_Product $product)
51
  {
52
+ $attributeSetModel = Mage::getModel("eav/entity_attribute_set")
53
+ ->load($product->getAttributeSetId());
54
 
55
+ if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
56
+ && $attributeSetModel->getAttributeSetName() == self::COUPON_ATTRIUBTE_SET_NAME
57
+ ) {
58
  return true;
59
  }
60
 
73
  $product->setData('tax_class_id', $this->_getTaxClassId());
74
  $product->setData('attribute_set_id', $this->_getAttributeSetId());
75
  $product->setData('stock_data', $this->_getStockData());
76
+ $product->setData('visibility', Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE);
77
+ $product->setData('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
78
+ $product->setData('type_id', Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL);
79
 
80
  return $product;
81
  }
97
  */
98
  protected function _getAttributeSetId()
99
  {
100
+ return $this->_getShopgateCouponAttributeSet()->getId();
 
 
 
 
101
  }
102
 
103
  /**
105
  */
106
  protected function _getShopgateCouponAttributeSet()
107
  {
108
+ if (!$this->_attributeSet) {
109
+ $collection = Mage::getModel('eav/entity_attribute_set')
110
+ ->getCollection()
111
+ ->addFieldToFilter('attribute_set_name', self::COUPON_ATTRIUBTE_SET_NAME);
112
+
113
+ if (count($collection->getItems())) {
114
+ $this->_attributeSet = $collection->getFirstItem();
115
+ } else {
116
+ $this->_attributeSet = $this->_createShopgateCouponAttributeSet();
117
+ }
118
  }
119
+ return $this->_attributeSet;
 
120
  }
121
 
122
  /**
132
  ->setAttributeSetName(self::COUPON_ATTRIUBTE_SET_NAME);
133
 
134
  $attributeSet->validate();
135
+ $this->_attributeSet = $attributeSet->save();
136
 
137
  return $this->_getShopgateCouponAttributeSet();
138
  }
140
  /**
141
  * Delivers an stock_item Dummy Object
142
  *
143
+ * @return array
144
  */
145
  protected function _getStockData()
146
  {
156
 
157
  return $stockData;
158
  }
159
+
160
+ /**
161
+ * Create magento coupon product from object
162
+ *
163
+ * @param Varien_Object $coupon
164
+ * @return Mage_Catalog_Model_Product
165
+ */
166
+ public function createProductFromShopgateCoupon(Varien_Object $coupon)
167
+ {
168
+ /* @var $product Mage_Catalog_Model_Product */
169
+ $product = Mage::getModel('catalog/product');
170
+ $id = $product->getIdBySku($coupon->getItemNumber());
171
+ $product->load($id);
172
+
173
+ $product = $this->prepareShopgateCouponProduct($product);
174
+ $product->setPriceCalculation(false);
175
+ $product->setName($coupon->getName());
176
+ $product->setSku($coupon->getItemNumber());
177
+ $product->setPrice($coupon->getUnitAmountWithTax());
178
+ $product->setStoreId(Mage::app()->getStore()->getStoreId());
179
+
180
+ if (!$product->getId()) {
181
+ $oldStoreId = Mage::app()->getStore()->getStoreId();
182
+ Mage::app()->setCurrentStore(0);
183
+ $product->save();
184
+ Mage::app()->setCurrentStore($oldStoreId);
185
+ }
186
+ return $product;
187
+ }
188
  }
app/code/community/Shopgate/Framework/Helper/Import/Order.php CHANGED
@@ -1,22 +1,16 @@
1
  <?php
 
2
  /**
3
- * User: pliebig
4
- * Date: 17.09.14
5
- * Time: 17:39
6
- * E-Mail: p.liebig@me.com, peter.liebig@magcorp.de
7
- */
8
-
9
- /**
10
- *
11
- *
12
  * @package Shopgate_Framework_Helper_Import_Order
13
  * @author Peter Liebig <p.liebig@me.com, peter.liebig@magcorp.de>
14
- */
15
-
16
  class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
17
  {
18
  /**
19
- * @param string $paymentType
 
20
  *
21
  * @return Mage_Payment_Model_Method_Abstract
22
  */
@@ -32,7 +26,7 @@ class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
32
  $payment = Mage::getModel("paypal/standard");
33
  if (!$payment->isAvailable()) {
34
  $payment = Mage::getModel("paypal/express");
35
- if (!$payment->isAvailable()){
36
  $payment = Mage::getModel("shopgate/payment_mobilePayment");
37
  }
38
  }
@@ -46,8 +40,8 @@ class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
46
  $payment = Mage::getModel('payment/method_banktransfer');
47
  break;
48
  }
49
-
50
- if ($this->_isModuleActive('Phoenix_BankPayment') || $this->_isModuleActive('Mage_BankPayment')){
51
  $payment = Mage::getModel("bankpayment/bankPayment");
52
  break;
53
  }
@@ -82,7 +76,7 @@ class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
82
  }
83
 
84
  /**
85
- * @return MSP_CashOnDelivery_Model_Cashondelivery|null|Phoenix_CashOnDelivery_Model_CashOnDelivery
86
  */
87
  protected function _getCodPayment()
88
  {
@@ -99,9 +93,15 @@ class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
99
  if ($this->_isModuleActive('MSP_CashOnDelivery')) {
100
  $payment = Mage::getModel('msp_cashondelivery/cashondelivery');
101
  }
 
 
 
 
 
 
102
  return $payment;
103
  }
104
-
105
  /**
106
  * @return null|Paymentnetwork_Pnsofortueberweisung_Model_Pnsofortueberweisung|Paymentnetwork_Pnsofortueberweisung_Model_Method_Sofort
107
  */
@@ -118,10 +118,10 @@ class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
118
  }
119
  return $payment;
120
  }
121
-
122
  /**
123
  * Helps with readability
124
- *
125
  * @param $moduleName
126
  * @return bool
127
  */
1
  <?php
2
+
3
  /**
4
+ * @deprecated v2.9.19
 
 
 
 
 
 
 
 
5
  * @package Shopgate_Framework_Helper_Import_Order
6
  * @author Peter Liebig <p.liebig@me.com, peter.liebig@magcorp.de>
7
+ * @author Konstantin Kirittsenko <konstantin@kiritsenko.com>
8
+ */
9
  class Shopgate_Framework_Helper_Import_Order extends Mage_Core_Helper_Abstract
10
  {
11
  /**
12
+ * @deprecated v2.9.19 handled in classes now
13
+ * @param string $paymentType
14
  *
15
  * @return Mage_Payment_Model_Method_Abstract
16
  */
26
  $payment = Mage::getModel("paypal/standard");
27
  if (!$payment->isAvailable()) {
28
  $payment = Mage::getModel("paypal/express");
29
+ if (!$payment->isAvailable()) {
30
  $payment = Mage::getModel("shopgate/payment_mobilePayment");
31
  }
32
  }
40
  $payment = Mage::getModel('payment/method_banktransfer');
41
  break;
42
  }
43
+
44
+ if ($this->_isModuleActive('Phoenix_BankPayment') || $this->_isModuleActive('Mage_BankPayment')) {
45
  $payment = Mage::getModel("bankpayment/bankPayment");
46
  break;
47
  }
76
  }
77
 
78
  /**
79
+ * @return MSP_CashOnDelivery_Model_Cashondelivery|null|Phoenix_CashOnDelivery_Model_CashOnDelivery|Mage_Payment_Model_Method_Cashondelivery
80
  */
81
  protected function _getCodPayment()
82
  {
93
  if ($this->_isModuleActive('MSP_CashOnDelivery')) {
94
  $payment = Mage::getModel('msp_cashondelivery/cashondelivery');
95
  }
96
+
97
+ $classExists = mageFindClassFile('Mage_Payment_Model_Method_Cashondelivery');
98
+ if ($classExists !== false && Mage::getStoreConfigFlag('payment/cashondelivery/active')) {
99
+ $payment = Mage::getModel('payment/method_cashondelivery');
100
+ }
101
+
102
  return $payment;
103
  }
104
+
105
  /**
106
  * @return null|Paymentnetwork_Pnsofortueberweisung_Model_Pnsofortueberweisung|Paymentnetwork_Pnsofortueberweisung_Model_Method_Sofort
107
  */
118
  }
119
  return $payment;
120
  }
121
+
122
  /**
123
  * Helps with readability
124
+ *
125
  * @param $moduleName
126
  * @return bool
127
  */
app/code/community/Shopgate/Framework/Model/Export/Product/Xml.php CHANGED
@@ -400,7 +400,13 @@ class Shopgate_Framework_Model_Export_Product_Xml
400
  : $index->load($this->item->getId())->getFinalPrice();
401
  }
402
  } else {
403
- $rulePrice = Mage::helper("shopgate/export")->calcProductPriceRule($this->item);
 
 
 
 
 
 
404
  $finalPrice = $useParent
405
  ? $this->_parent->getFinalPrice()
406
  : $this->item->getFinalPrice();
400
  : $index->load($this->item->getId())->getFinalPrice();
401
  }
402
  } else {
403
+
404
+ $rulePrice = Mage::helper("shopgate/export")->calcProductPriceRule(
405
+ $useParent
406
+ ? $this->_parent
407
+ : $this->item
408
+ );
409
+
410
  $finalPrice = $useParent
411
  ? $this->_parent->getFinalPrice()
412
  : $this->item->getFinalPrice();
app/code/community/Shopgate/Framework/Model/Observer.php CHANGED
@@ -198,10 +198,6 @@ class Shopgate_Framework_Model_Observer
198
 
199
  ShopgateLogger::getInstance()->log("> Save data and return!", ShopgateLogger::LOGTYPE_DEBUG);
200
 
201
- Mage::getSingleton('core/session')->addSuccess(
202
- Mage::helper("shopgate")->__("[SHOPGATE] Order status was updated successfully at Shopgate")
203
- );
204
-
205
  if ($errors > 0) {
206
  Mage::getSingleton('core/session')->addError(
207
  Mage::helper("shopgate")->__(
@@ -209,6 +205,10 @@ class Shopgate_Framework_Model_Observer
209
  $errors['errorcount']
210
  )
211
  );
 
 
 
 
212
  }
213
  }
214
 
@@ -580,30 +580,6 @@ class Shopgate_Framework_Model_Observer
580
  }
581
  }
582
 
583
- /**
584
- * @param Varien_Event_Observer $observer
585
- */
586
- public function saveShopgateCouponProducts($observer)
587
- {
588
- if (Mage::helper("shopgate")->isShopgateApiRequest()) {
589
- $quote = $observer->getQuote();
590
- $helper = Mage::helper('shopgate/coupon');
591
- foreach ($quote->getAllItems() as $item) {
592
- if ($helper->isShopgateCoupon($item->getProduct())) {
593
- $product = $helper->prepareShopgateCouponProduct($item->getProduct());
594
- try {
595
- $product->save();
596
- if ($id = $product->getId()) {
597
- $item->setProductId($id);
598
- }
599
- } catch (Exception $e) {
600
- Mage::logException($e);
601
- }
602
- }
603
- }
604
- }
605
- }
606
-
607
  /**
608
  * @param $observer Varien_Event_Observer
609
  */
@@ -849,20 +825,24 @@ class Shopgate_Framework_Model_Observer
849
  * Main purpose is to set a different sequence number
850
  * after we capture an invoice. Else we cannot refund
851
  * because PayOne plugin is not setting it correctly.
852
- *
853
  * @param Varien_Event_Observer $event
854
  * @return $this
855
  * @throws Exception
856
  */
857
  public function preparePayoneOrderForRefund(Varien_Event_Observer $event)
858
  {
 
 
 
 
 
859
  $factory = Mage::getModel('payone_core/factory');
860
- if(!$factory) return $this;
861
  /** @var Mage_Sales_Model_Order_Invoice $invoice */
862
- $invoice = $event['invoice'];
863
  $transaction = $factory->getModelTransaction();
864
  $transStatus = $factory->getModelApi();
865
- if($transaction->load($invoice->getTransactionId(), 'txid')->hasData()) {
866
  $collection = $transStatus
867
  ->getCollection()
868
  ->addFieldToFilter('order_id', $transaction->getOrderId())
@@ -872,12 +852,12 @@ class Shopgate_Framework_Model_Observer
872
  * If we have an approval on capture in API
873
  * call database, set next sequence as refund
874
  */
875
- if($collection->getSize() > 0) {
876
  $transaction->setLastSequencenumber(1);
877
  $transaction->save();
878
  }
879
  }
880
-
881
  return $this;
882
  }
883
  }
198
 
199
  ShopgateLogger::getInstance()->log("> Save data and return!", ShopgateLogger::LOGTYPE_DEBUG);
200
 
 
 
 
 
201
  if ($errors > 0) {
202
  Mage::getSingleton('core/session')->addError(
203
  Mage::helper("shopgate")->__(
205
  $errors['errorcount']
206
  )
207
  );
208
+ } else {
209
+ Mage::getSingleton('core/session')->addSuccess(
210
+ Mage::helper("shopgate")->__("[SHOPGATE] Order status was updated successfully at Shopgate")
211
+ );
212
  }
213
  }
214
 
580
  }
581
  }
582
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
583
  /**
584
  * @param $observer Varien_Event_Observer
585
  */
825
  * Main purpose is to set a different sequence number
826
  * after we capture an invoice. Else we cannot refund
827
  * because PayOne plugin is not setting it correctly.
828
+ *
829
  * @param Varien_Event_Observer $event
830
  * @return $this
831
  * @throws Exception
832
  */
833
  public function preparePayoneOrderForRefund(Varien_Event_Observer $event)
834
  {
835
+ $active = Mage::getConfig()->getModuleConfig('Payone_Core')->is('active', 'true');
836
+ if (!$active) {
837
+ return $this;
838
+ }
839
+
840
  $factory = Mage::getModel('payone_core/factory');
 
841
  /** @var Mage_Sales_Model_Order_Invoice $invoice */
842
+ $invoice = $event['invoice'];
843
  $transaction = $factory->getModelTransaction();
844
  $transStatus = $factory->getModelApi();
845
+ if ($transaction->load($invoice->getTransactionId(), 'txid')->hasData()) {
846
  $collection = $transStatus
847
  ->getCollection()
848
  ->addFieldToFilter('order_id', $transaction->getOrderId())
852
  * If we have an approval on capture in API
853
  * call database, set next sequence as refund
854
  */
855
+ if ($collection->getSize() > 0) {
856
  $transaction->setLastSequencenumber(1);
857
  $transaction->save();
858
  }
859
  }
860
+
861
  return $this;
862
  }
863
  }
app/code/community/Shopgate/Framework/Model/Payment/Abstract.php CHANGED
@@ -38,7 +38,7 @@ class Shopgate_Framework_Model_Payment_Abstract extends Mage_Core_Model_Abstract
38
  * Model code of the class that inherits mage's Payment_Method_Abstract
39
  * Defaults to Shopgate's Mobile payment block
40
  */
41
- const PAYMENT_MODEL = '';
42
 
43
  /**
44
  * The config path to module enabled
@@ -210,7 +210,6 @@ class Shopgate_Framework_Model_Payment_Abstract extends Mage_Core_Model_Abstract
210
 
211
  /**
212
  * Checks store config to be active
213
- * //todo: can we check storeId on import?
214
  *
215
  * @return bool
216
  */
@@ -352,22 +351,22 @@ class Shopgate_Framework_Model_Payment_Abstract extends Mage_Core_Model_Abstract
352
  }
353
 
354
  /**
355
- * Payment method return
356
- * method and don't use it anymore.
357
  *
358
- * @return bool|mixed
359
  */
360
  public function getPaymentModel()
361
  {
362
  $model = Mage::getModel($this::PAYMENT_MODEL);
363
  if (!$model) {
364
- /*$debug = $this->_getHelper()->__(
365
  'Could not find PAYMENT_MODEL %s in class %s',
366
  $this::PAYMENT_MODEL,
367
  get_class($this)
368
  );
369
  ShopgateLogger::getInstance()->log($debug, ShopgateLogger::LOGTYPE_DEBUG);
370
- return Mage::getModel(self::PAYMENT_MODEL);*/
371
  }
372
  return $model;
373
  }
@@ -393,4 +392,12 @@ class Shopgate_Framework_Model_Payment_Abstract extends Mage_Core_Model_Abstract
393
  {
394
  return Mage::helper('shopgate/payment_abstract');
395
  }
 
 
 
 
 
 
 
 
396
  }
38
  * Model code of the class that inherits mage's Payment_Method_Abstract
39
  * Defaults to Shopgate's Mobile payment block
40
  */
41
+ const PAYMENT_MODEL = 'shopgate/payment_mobilePayment';
42
 
43
  /**
44
  * The config path to module enabled
210
 
211
  /**
212
  * Checks store config to be active
 
213
  *
214
  * @return bool
215
  */
351
  }
352
 
353
  /**
354
+ * Returns the payment model of a class,
355
+ * else falls back to mobilePayment
356
  *
357
+ * @return mixed
358
  */
359
  public function getPaymentModel()
360
  {
361
  $model = Mage::getModel($this::PAYMENT_MODEL);
362
  if (!$model) {
363
+ $debug = $this->_getHelper()->__(
364
  'Could not find PAYMENT_MODEL %s in class %s',
365
  $this::PAYMENT_MODEL,
366
  get_class($this)
367
  );
368
  ShopgateLogger::getInstance()->log($debug, ShopgateLogger::LOGTYPE_DEBUG);
369
+ $model = Mage::getModel(self::PAYMENT_MODEL);
370
  }
371
  return $model;
372
  }
392
  {
393
  return Mage::helper('shopgate/payment_abstract');
394
  }
395
+
396
+ /**
397
+ * @return Shopgate_Framework_Helper_Config
398
+ */
399
+ protected function _getConfigHelper()
400
+ {
401
+ return Mage::helper('shopgate/config');
402
+ }
403
  }
app/code/community/Shopgate/Framework/Model/Payment/Pp/Abstract.php CHANGED
@@ -57,12 +57,12 @@ class Shopgate_Framework_Model_Payment_Pp_Abstract
57
  $rawData = $order->getPayment()->getTransactionAdditionalInfo(
58
  Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS
59
  );
60
- $paymentStatus = strtolower($rawData['payment_status']);
61
  }
62
 
63
  $total = $order->getBaseCurrency()->formatTxt($order->getGrandTotal());
64
  $state = Mage_Sales_Model_Order::STATE_PROCESSING;
65
- $action = $this->getActionByStatus($paymentStatus);
66
 
67
  if ($order->getPayment()->getIsTransactionPending()) {
68
  $message = Mage::helper('paypal')->__(
57
  $rawData = $order->getPayment()->getTransactionAdditionalInfo(
58
  Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS
59
  );
60
+ $paymentStatus = $rawData['payment_status'];
61
  }
62
 
63
  $total = $order->getBaseCurrency()->formatTxt($order->getGrandTotal());
64
  $state = Mage_Sales_Model_Order::STATE_PROCESSING;
65
+ $action = $this->getActionByStatus(strtolower($paymentStatus));
66
 
67
  if ($order->getPayment()->getIsTransactionPending()) {
68
  $message = Mage::helper('paypal')->__(
app/code/community/Shopgate/Framework/Model/Payment/Pp/Wspp.php CHANGED
@@ -18,8 +18,9 @@ class Shopgate_Framework_Model_Payment_Pp_Wspp
18
  implements Shopgate_Framework_Model_Payment_Interface
19
  {
20
  const PAYMENT_IDENTIFIER = ShopgateOrder::PP_WSPP_CC;
21
- const XML_CONFIG_ENABLED = 'payment/paypal_wps_express/active';
22
  const MODULE_CONFIG = 'Mage_Paypal';
 
 
23
 
24
  /**
25
  * Create new order for amazon payment
@@ -212,14 +213,33 @@ class Shopgate_Framework_Model_Payment_Pp_Wspp
212
  }
213
 
214
  /**
215
- * WSPP online actions still work without method being enabled.
216
- * It also breaks when runs with default abstract
217
  *
218
  * @return bool
219
  */
220
  public function isEnabled()
221
  {
222
- return true;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
223
  }
224
 
225
  /**
18
  implements Shopgate_Framework_Model_Payment_Interface
19
  {
20
  const PAYMENT_IDENTIFIER = ShopgateOrder::PP_WSPP_CC;
 
21
  const MODULE_CONFIG = 'Mage_Paypal';
22
+ const PAYMENT_MODEL = 'paypal/direct';
23
+ const XML_CONFIG_ENABLED = 'payment/paypal_wps_express/active';
24
 
25
  /**
26
  * Create new order for amazon payment
213
  }
214
 
215
  /**
216
+ * Rewrite to tailor for lower versions
217
+ * of magento's PP implementation
218
  *
219
  * @return bool
220
  */
221
  public function isEnabled()
222
  {
223
+ return parent::isEnabled() || $this->_isOldWsppEnabled();
224
+ }
225
+
226
+ /**
227
+ * Checks if Website Payments Pro OR
228
+ * Website Payment Pro Payflow are enabled
229
+ *
230
+ * @return bool
231
+ */
232
+ private function _isOldWsppEnabled()
233
+ {
234
+ $wpp = Mage::getStoreConfig('payment/paypal_direct/active');
235
+ $wppp = Mage::getStoreConfig('payment/paypaluk_direct/active');
236
+ $result = !empty($wpp) || !empty($wppp);
237
+
238
+ if (!$result) {
239
+ $debug = $this->_getHelper()->__('Neither WSPP or WSPP Payflow are enabled');
240
+ ShopgateLogger::getInstance()->log($debug, ShopgateLogger::LOGTYPE_DEBUG);
241
+ }
242
+ return $result;
243
  }
244
 
245
  /**
app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod.php ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Redirector for COD payment methods
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Cod extends Shopgate_Framework_Model_Payment_Simple
30
+ {
31
+ const MODULE_CONFIG = 'Phoenix_CashOnDelivery';
32
+
33
+ /**
34
+ * Checks Phoenix|MSP|Native COD payment methods
35
+ * Note! Last one overwrites previous.
36
+ *
37
+ * @return false|Shopgate_Framework_Model_Payment_Abstract
38
+ */
39
+ public function getModelByPaymentMethod()
40
+ {
41
+ if ($this->_getConfigHelper()->getIsMagentoVersionLower1700() === false) {
42
+ $class = Mage::getModel('shopgate/payment_simple_cod_native', $this->getShopgateOrder());
43
+ if ($class instanceof Shopgate_Framework_Model_Payment_Interface && $class->isValid()) {
44
+ $this->setPaymentMethod('Native');
45
+ }
46
+ }
47
+
48
+ if ($this->isModuleActive()) {
49
+ if (version_compare($this->_getVersion(), '1.0.8', '<')) {
50
+ $this->setPaymentMethod('Phoenix107');
51
+ } else {
52
+ $this->setPaymentMethod('Phoenix108');
53
+ }
54
+ }
55
+
56
+ $msp = Mage::getModel('shopgate/payment_simple_cod_msp', $this->getShopgateOrder());
57
+ if ($msp instanceof Shopgate_Framework_Model_Payment_Interface && $msp->isValid()) {
58
+ $this->setPaymentMethod('Msp');
59
+ }
60
+
61
+ return parent::getModelByPaymentMethod();
62
+ }
63
+
64
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Abstract.php ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
26
+ */
27
+ class Shopgate_Framework_Model_Payment_Simple_Cod_Abstract extends Shopgate_Framework_Model_Payment_Abstract
28
+ {
29
+ const PAYMENT_IDENTIFIER = ShopgateOrder::COD;
30
+
31
+ /**
32
+ * No need to pull status, it is assigned automatically,
33
+ * defaults to 'Pending' when not set in config.
34
+ *
35
+ * @param Mage_Sales_Model_Order $magentoOrder
36
+ * @return mixed
37
+ */
38
+ public function setOrderStatus($magentoOrder)
39
+ {
40
+ return $magentoOrder->setShopgateStatusSet(true);
41
+ }
42
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Msp.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Support for MSP_COD plugin added v1.2.5 and up
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Cod_Msp
30
+ extends Shopgate_Framework_Model_Payment_Simple_Cod_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const MODULE_CONFIG = 'MSP_CashOnDelivery';
34
+ const XML_CONFIG_ENABLED = 'payment/msp_cashondelivery/active';
35
+ const PAYMENT_MODEL = 'msp_cashondelivery/cashondelivery';
36
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Native.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Handlers for payment methods added by Magento in version 1.7.0.0rc1
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Cod_Native
30
+ extends Shopgate_Framework_Model_Payment_Simple_Cod_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const XML_CONFIG_ENABLED = 'payment/cashondelivery/active';
34
+ const MODULE_CONFIG = 'Mage_Payment';
35
+ const PAYMENT_MODEL = 'payment/method_cashondelivery';
36
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Phoenix107.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Support for Phoenix_CashOnDelivery younger than v1.8.0 (not inclusive)
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Cod_Phoenix107
30
+ extends Shopgate_Framework_Model_Payment_Simple_Cod_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const MODULE_CONFIG = 'Phoenix_CashOnDelivery';
34
+ const PAYMENT_MODEL = 'cashondelivery/cashOnDelivery';
35
+ const XML_CONFIG_ENABLED = 'payment/cashondelivery/active';
36
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Cod/Phoenix108.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Support for Phoenix_CashOnDelivery v1.8.0 and older
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Cod_Phoenix108
30
+ extends Shopgate_Framework_Model_Payment_Simple_Cod_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const MODULE_CONFIG = 'Phoenix_CashOnDelivery';
34
+ const PAYMENT_MODEL = 'phoenix_cashondelivery/cashOnDelivery';
35
+ const XML_CONFIG_ENABLED = 'payment/phoenix_cashondelivery/active';
36
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Invoice.php ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
26
+ */
27
+ class Shopgate_Framework_Model_Payment_Simple_Invoice
28
+ extends Shopgate_Framework_Model_Payment_Abstract
29
+ implements Shopgate_Framework_Model_Payment_Interface
30
+ {
31
+ const PAYMENT_IDENTIFIER = ShopgateOrder::INVOICE;
32
+ const MODULE_CONFIG = 'Mage_Payment';
33
+ const PAYMENT_MODEL = 'payment/method_purchaseorder';
34
+ const XML_CONFIG_ENABLED = 'payment/purchaseorder/active';
35
+
36
+ /**
37
+ * @param Mage_Sales_Model_Order $magentoOrder
38
+ * @return mixed
39
+ */
40
+ public function setOrderStatus($magentoOrder)
41
+ {
42
+ return $magentoOrder->setShopgateStatusSet(true);
43
+ }
44
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Mws.php CHANGED
@@ -33,8 +33,9 @@ class Shopgate_Framework_Model_Payment_Simple_Mws
33
  implements Shopgate_Framework_Model_Payment_Interface
34
  {
35
  const PAYMENT_IDENTIFIER = ShopgateOrder::AMAZON_PAYMENT;
36
- const XML_CONFIG_ENABLED = 'amazonpayments/general/active';
37
  const MODULE_CONFIG = 'Creativestyle_AmazonPayments';
 
 
38
 
39
  /**
40
  * create new order for amazon payment
@@ -193,7 +194,7 @@ class Shopgate_Framework_Model_Payment_Simple_Mws
193
  */
194
  public function prepareQuote($quote, $info)
195
  {
196
- $payment = Mage::helper('shopgate/import_order')->getMagentoPaymentMethod($this::PAYMENT_IDENTIFIER);;
197
  if ($quote->isVirtual()) {
198
  $quote->getBillingAddress()->setPaymentMethod($payment->getCode() ? $payment->getCode() : null);
199
  } else {
33
  implements Shopgate_Framework_Model_Payment_Interface
34
  {
35
  const PAYMENT_IDENTIFIER = ShopgateOrder::AMAZON_PAYMENT;
 
36
  const MODULE_CONFIG = 'Creativestyle_AmazonPayments';
37
+ const PAYMENT_MODEL = 'amazonpayments/payment_advanced';
38
+ const XML_CONFIG_ENABLED = 'amazonpayments/general/active';
39
 
40
  /**
41
  * create new order for amazon payment
194
  */
195
  public function prepareQuote($quote, $info)
196
  {
197
+ $payment = $this->getPaymentModel();
198
  if ($quote->isVirtual()) {
199
  $quote->getBillingAddress()->setPaymentMethod($payment->getCode() ? $payment->getCode() : null);
200
  } else {
app/code/community/Shopgate/Framework/Model/Payment/Simple/Paypal.php CHANGED
@@ -22,10 +22,29 @@
22
  */
23
 
24
  /**
25
- * Forwarder to PayPal, let paypal folder handle these poor payment_method naming edge cases!
26
  *
27
  * Class Shopgate_Framework_Model_Payment_Simple_Paypal
28
  *
29
  * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
30
  */
31
- class Shopgate_Framework_Model_Payment_Simple_Paypal extends Shopgate_Framework_Model_Payment_Pp_Paypal {}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  */
23
 
24
  /**
25
+ * Forwarder to PayPal between Standard & Express
26
  *
27
  * Class Shopgate_Framework_Model_Payment_Simple_Paypal
28
  *
29
  * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
30
  */
31
+ class Shopgate_Framework_Model_Payment_Simple_Paypal extends Shopgate_Framework_Model_Payment_Simple
32
+ {
33
+ /**
34
+ * Redirect to standard or express
35
+ *
36
+ * @return false|Shopgate_Framework_Model_Payment_Abstract
37
+ */
38
+ public function getModelByPaymentMethod()
39
+ {
40
+ $standard = Mage::getModel('shopgate/payment_simple_paypal_standard', $this->getShopgateOrder());
41
+
42
+ if ($standard instanceof Shopgate_Framework_Model_Payment_Interface && $standard->isValid()) {
43
+ $this->setPaymentMethod('STANDARD');
44
+ } else {
45
+ $this->setPaymentMethod('EXPRESS');
46
+ }
47
+
48
+ return parent::getModelByPaymentMethod();
49
+ }
50
+ }
app/code/community/Shopgate/Framework/Model/Payment/{Pp/Paypal.php → Simple/Paypal/Express.php} RENAMED
@@ -29,7 +29,7 @@
29
  * @author Peter Liebig <p.liebig@me.com, peter.liebig@magcorp.de>
30
  * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
31
  */
32
- class Shopgate_Framework_Model_Payment_Pp_Paypal
33
  extends Shopgate_Framework_Model_Payment_Pp_Abstract
34
  implements Shopgate_Framework_Model_Payment_Interface
35
  {
@@ -235,17 +235,5 @@ class Shopgate_Framework_Model_Payment_Pp_Paypal
235
  {
236
  return Mage::helper('shopgate/payment_wspp');
237
  }
238
-
239
- /**
240
- * Makes sure we are on the right PayPal
241
- *
242
- * @return bool
243
- */
244
- public function checkGenericValid()
245
- {
246
- $payment = Mage::helper('shopgate/import_order')
247
- ->getMagentoPaymentMethod($this->getPaymentMethod());
248
-
249
- return $payment ? $payment->getCode() === "paypal_express" : false;
250
- }
251
  }
29
  * @author Peter Liebig <p.liebig@me.com, peter.liebig@magcorp.de>
30
  * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
31
  */
32
+ class Shopgate_Framework_Model_Payment_Simple_Paypal_Express
33
  extends Shopgate_Framework_Model_Payment_Pp_Abstract
34
  implements Shopgate_Framework_Model_Payment_Interface
35
  {
235
  {
236
  return Mage::helper('shopgate/payment_wspp');
237
  }
238
+
 
 
 
 
 
 
 
 
 
 
 
 
239
  }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Paypal/Standard.php ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * PayPal Standard handler
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Paypal_Standard
30
+ extends Shopgate_Framework_Model_Payment_Pp_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const PAYMENT_IDENTIFIER = ShopgateOrder::PAYPAL;
34
+ const XML_CONFIG_ENABLED = 'payment/paypal_standard/active';
35
+ const PAYMENT_MODEL = 'paypal/standard';
36
+
37
+ /**
38
+ * @param Mage_Sales_Model_Order $magentoOrder
39
+ * @return Mage_Sales_Model_Order
40
+ */
41
+ public function manipulateOrderWithPaymentData($magentoOrder)
42
+ {
43
+ $info = $this->getShopgateOrder()->getPaymentInfos();
44
+ $magentoOrder = parent::manipulateOrderWithPaymentData($magentoOrder);
45
+ $transaction = $this->_createTransaction($magentoOrder);
46
+
47
+ $magentoOrder->getPayment()->importTransactionInfo($transaction);
48
+ $magentoOrder->getPayment()->setLastTransId($info['transaction_id']);
49
+ return $magentoOrder;
50
+ }
51
+
52
+
53
+ /**
54
+ * Handles magento transaction creation
55
+ *
56
+ * @param Mage_Sales_Model_Order $magentoOrder
57
+ * @return mixed
58
+ */
59
+ protected function _createTransaction($magentoOrder)
60
+ {
61
+ $info = $this->getShopgateOrder()->getPaymentInfos();
62
+ $transaction = Mage::getModel("sales/order_payment_transaction");
63
+ try {
64
+ $transaction->setOrderPaymentObject($magentoOrder->getPayment());
65
+ if ($magentoOrder->getBaseTotalDue()) {
66
+ $transaction->setIsClosed(false);
67
+ } else {
68
+ $transaction->setIsClosed(true);
69
+ }
70
+ $transaction->setTxnId($info['transaction_id']);
71
+ if ($this->getShopgateOrder()->getIsPaid()) {
72
+ $transaction->setTxnType(Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE);
73
+ } else {
74
+ $transaction->setTxnType(Mage_Sales_Model_Order_Payment_Transaction::TYPE_AUTH);
75
+ }
76
+ } catch (Exception $x) {
77
+ $this->log($x->getMessage());
78
+ }
79
+ return $transaction->save();
80
+ }
81
+
82
+ /**
83
+ * Get status with gateway
84
+ *
85
+ * @param Mage_Sales_Model_Order $magentoOrder
86
+ * @return Mage_Sales_Model_Order
87
+ */
88
+ public function setOrderStatus($magentoOrder)
89
+ {
90
+ $info = $this->getShopgateOrder()->getPaymentInfos();
91
+ return $this->orderStatusManager($magentoOrder, $info['payment_status']);
92
+ }
93
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay.php ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Redirects to the proper bank payment class
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Prepay extends Shopgate_Framework_Model_Payment_Simple
30
+ {
31
+ /**
32
+ * If mage 1.7+ use native bank payment, else try Check Money Order.
33
+ * Phoenix plugin takes priority if it's enabled
34
+ * Note! Last one overwrites previous.
35
+ *
36
+ * @return false|Shopgate_Framework_Model_Payment_Abstract
37
+ */
38
+ public function getModelByPaymentMethod()
39
+ {
40
+ if ($this->_getConfigHelper()->getIsMagentoVersionLower1700() === false) {
41
+ $native = Mage::getModel('shopgate/payment_simple_prepay_native', $this->getShopgateOrder());
42
+ if ($native instanceof Shopgate_Framework_Model_Payment_Interface && $native->isValid()) {
43
+ $this->setPaymentMethod('Native');
44
+ }
45
+ } else {
46
+ $checkmo = Mage::getModel('shopgate/payment_simple_prepay_checkmo', $this->getShopgateOrder());
47
+ if ($checkmo instanceof Shopgate_Framework_Model_Payment_Interface && $checkmo->isValid()) {
48
+ $this->setPaymentMethod('Checkmo');
49
+ }
50
+ }
51
+
52
+ $phoenix = Mage::getModel('shopgate/payment_simple_prepay_phoenix', $this->getShopgateOrder());
53
+ if ($phoenix instanceof Shopgate_Framework_Model_Payment_Interface && $phoenix->isValid()) {
54
+ $this->setPaymentMethod('Phoenix');
55
+ }
56
+
57
+ return parent::getModelByPaymentMethod();
58
+ }
59
+
60
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Abstract.php ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
26
+ */
27
+ class Shopgate_Framework_Model_Payment_Simple_Prepay_Abstract extends Shopgate_Framework_Model_Payment_Abstract
28
+ {
29
+ const PAYMENT_IDENTIFIER = ShopgateOrder::PREPAY;
30
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Checkmo.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * This is a handler for people trying to fake bank payment
26
+ * with Check Money Order if magento version is below 1.7
27
+ *
28
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
29
+ */
30
+ class Shopgate_Framework_Model_Payment_Simple_Prepay_Checkmo
31
+ extends Shopgate_Framework_Model_Payment_Simple_Prepay_Abstract
32
+ implements Shopgate_Framework_Model_Payment_Interface
33
+ {
34
+ const MODULE_CONFIG = 'Mage_Payment';
35
+ const PAYMENT_MODEL = 'payment/method_checkmo';
36
+ const XML_CONFIG_ENABLED = 'payment/checkmo/active';
37
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Native.php ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Handles the native BankPayment option which started in mage 1.7
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Prepay_Native
30
+ extends Shopgate_Framework_Model_Payment_Simple_Prepay_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const MODULE_CONFIG = 'Mage_Payment';
34
+ const PAYMENT_MODEL = 'payment/method_banktransfer';
35
+ const XML_CONFIG_ENABLED = 'payment/banktransfer/active';
36
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Prepay/Phoenix.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
26
+ */
27
+ class Shopgate_Framework_Model_Payment_Simple_Prepay_Phoenix
28
+ extends Shopgate_Framework_Model_Payment_Simple_Prepay_Abstract
29
+ implements Shopgate_Framework_Model_Payment_Interface
30
+ {
31
+ const MODULE_CONFIG = 'Phoenix_BankPayment';
32
+ const PAYMENT_MODEL = 'bankpayment/bankPayment';
33
+ const XML_CONFIG_ENABLED = 'payment/bankpayment/active';
34
+
35
+ /**
36
+ * Rewrite to accommodate older version of BankPayment
37
+ *
38
+ * @return bool
39
+ */
40
+ public function isModuleActive()
41
+ {
42
+ return parent::isModuleActive() || $this->_isActive('Mage_BankPayment');
43
+ }
44
+
45
+ /**
46
+ * Helps with readability
47
+ *
48
+ * @param $moduleName
49
+ * @return bool
50
+ */
51
+ private function _isActive($moduleName)
52
+ {
53
+ return Mage::getConfig()->getModuleConfig($moduleName)->is('active', 'true');
54
+ }
55
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Shopgate.php ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Shopgate GmbH
4
+ *
5
+ * URHEBERRECHTSHINWEIS
6
+ *
7
+ * Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
8
+ * zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
9
+ * Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
10
+ * öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
11
+ * schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
12
+ *
13
+ * COPYRIGHT NOTICE
14
+ *
15
+ * This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
16
+ * for the purpose of facilitating communication between the IT system of the customer and the IT system
17
+ * of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
18
+ * transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
19
+ * of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
20
+ *
21
+ * @author Shopgate GmbH <interfaces@shopgate.com>
22
+ */
23
+
24
+ /**
25
+ * Handles SHOPGATE payment method orders
26
+ *
27
+ * @author Konstantin Kiritsenko <konstantin@kiritsenko.com>
28
+ */
29
+ class Shopgate_Framework_Model_Payment_Simple_Shopgate
30
+ extends Shopgate_Framework_Model_Payment_Abstract
31
+ implements Shopgate_Framework_Model_Payment_Interface
32
+ {
33
+ const PAYMENT_IDENTIFIER = ShopgateOrder::SHOPGATE;
34
+ const MODULE_CONFIG = 'Shopgate_Framework';
35
+ const PAYMENT_MODEL = 'shopgate/payment_shopgate';
36
+
37
+ /**
38
+ * No need to check activation, just import!
39
+ *
40
+ * @return true
41
+ */
42
+ public function isEnabled()
43
+ {
44
+ return true;
45
+ }
46
+
47
+ /**
48
+ * No need to pull status, it is assigned automatically
49
+ *
50
+ * @param Mage_Sales_Model_Order $magentoOrder
51
+ * @return mixed
52
+ */
53
+ public function setOrderStatus($magentoOrder)
54
+ {
55
+ return $magentoOrder->setShopgateStatusSet(true);
56
+ }
57
+ }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Sue/Sue118.php CHANGED
@@ -33,5 +33,6 @@ class Shopgate_Framework_Model_Payment_Simple_Sue_Sue118
33
  implements Shopgate_Framework_Model_Payment_Interface
34
  {
35
  const XML_CONFIG_ENABLED = 'payment/pnsofortueberweisung/active';
 
36
  const XML_CONFIG_STATUS_PAID = 'payment/pnsofortueberweisung/order_status';
37
  }
33
  implements Shopgate_Framework_Model_Payment_Interface
34
  {
35
  const XML_CONFIG_ENABLED = 'payment/pnsofortueberweisung/active';
36
+ const PAYMENT_MODEL = 'pnsofortueberweisung/pnsofortueberweisung';
37
  const XML_CONFIG_STATUS_PAID = 'payment/pnsofortueberweisung/order_status';
38
  }
app/code/community/Shopgate/Framework/Model/Payment/Simple/Sue/Sue300.php CHANGED
@@ -33,6 +33,7 @@ class Shopgate_Framework_Model_Payment_Simple_Sue_Sue300
33
  implements Shopgate_Framework_Model_Payment_Interface
34
  {
35
  const XML_CONFIG_ENABLED = 'payment/paymentnetwork_pnsofortueberweisung/active';
 
36
  const XML_CONFIG_STATUS_PAID = 'payment/paymentnetwork_pnsofortueberweisung/order_status_received_credited';
37
  const XML_CONFIG_STATUS_NOT_PAID = 'payment/paymentnetwork_pnsofortueberweisung/order_status_pending_not_credited_yet';
38
  }
33
  implements Shopgate_Framework_Model_Payment_Interface
34
  {
35
  const XML_CONFIG_ENABLED = 'payment/paymentnetwork_pnsofortueberweisung/active';
36
+ const PAYMENT_MODEL = 'sofort/method_sofort';
37
  const XML_CONFIG_STATUS_PAID = 'payment/paymentnetwork_pnsofortueberweisung/order_status_received_credited';
38
  const XML_CONFIG_STATUS_NOT_PAID = 'payment/paymentnetwork_pnsofortueberweisung/order_status_pending_not_credited_yet';
39
  }
app/code/community/Shopgate/Framework/Model/Shopgate/Plugin.php CHANGED
@@ -76,7 +76,7 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
76
  * @var null | Shopgate_Framework_Model_Payment_Factory
77
  */
78
  protected $_factory = null;
79
-
80
  /**
81
  * Callback function for initialization by plugin implementations.
82
  * This method gets called on instantiation of a ShopgatePlugin child class and serves as __construct() replacement.
@@ -89,14 +89,14 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
89
  /* @var $config Shopgate_Framework_Helper_Config */
90
  $this->_config = $this->_getConfig();
91
  $this->_defaultTax = Mage::getModel("tax/calculation")->getDefaultCustomerTaxClass(
92
- $this->_getConfig()->getStoreViewId()
93
  );
94
  return true;
95
  }
96
 
97
  /**
98
  * Simple setter
99
- *
100
  * @param $factory Shopgate_Framework_Model_Payment_Factory
101
  */
102
  protected function _setFactory(Shopgate_Framework_Model_Payment_Factory $factory)
@@ -106,19 +106,19 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
106
 
107
  /**
108
  * Factory getter
109
- *
110
  * @return null|Shopgate_Framework_Model_Payment_Factory
111
  */
112
  protected function _getFactory()
113
  {
114
- if(!$this->_factory){
115
- $shopgateOrder = Mage::getModel('core/session')->getShopgateOrder();
116
- $factory = Mage::getModel('shopgate/payment_factory', $shopgateOrder);
117
  $this->_setFactory($factory);
118
  }
119
  return $this->_factory;
120
  }
121
-
122
  /**
123
  *
124
  * @param string $action
@@ -165,8 +165,10 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
165
  $this->_cronCancelOrder();
166
  break;
167
  default:
168
- throw new ShopgateLibraryException(ShopgateLibraryException::PLUGIN_CRON_UNSUPPORTED_JOB,
169
- '"' . $jobname . '"', true);
 
 
170
  }
171
 
172
  $this->log("END Run CRON-Jobs", ShopgateLogger::LOGTYPE_DEBUG);
@@ -217,8 +219,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
217
  continue;
218
  }
219
  $this->log(
220
- ">> Order with ID {$order->getId()} loaded and ready for cancellation",
221
- ShopgateLogger::LOGTYPE_DEBUG
222
  );
223
  $this->log(">> Dispatching event order_cancel_after", ShopgateLogger::LOGTYPE_DEBUG);
224
  Mage::dispatchEvent('order_cancel_after', array('order' => $order, 'shopgate_order' => $shopgateOrder));
@@ -282,7 +284,11 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
282
  if ($e->getCode() == Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS) {
283
  throw new ShopgateLibraryException(ShopgateLibraryException::REGISTER_USER_ALREADY_EXISTS);
284
  } else {
285
- throw new ShopgateLibraryException(ShopgateLibraryException::REGISTER_FAILED_TO_ADD_USER, $e->getMessage(), true);
 
 
 
 
286
  }
287
  } catch (Exception $e) {
288
  throw new ShopgateLibraryException(ShopgateLibraryException::UNKNOWN_ERROR_CODE, $e->getMessage(), true);
@@ -321,8 +327,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
321
  $this->log("# Try to load old shopgate order to check for duplicate", ShopgateLogger::LOGTYPE_DEBUG);
322
  /** @var Shopgate_Framework_Model_Shopgate_Order $magentoShopgateOrder */
323
  $magentoShopgateOrder = Mage::getModel("shopgate/shopgate_order")->load(
324
- $order->getOrderNumber(),
325
- "shopgate_order_number"
326
  );
327
 
328
  if ($magentoShopgateOrder->getId() !== null) {
@@ -333,8 +339,10 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
333
  $orderId = $magentoShopgateOrder->getOrderId();
334
  }
335
 
336
- throw new ShopgateLibraryException(ShopgateLibraryException::PLUGIN_DUPLICATE_ORDER,
337
- 'orderId: ' . $orderId, true);
 
 
338
  }
339
  Mage::dispatchEvent('shopgate_add_order_before', array('shopgate_order' => $order));
340
  $this->log("# Add shopgate order to Session", ShopgateLogger::LOGTYPE_DEBUG);
@@ -385,11 +393,11 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
385
  $title = $title ? $title : $order->getShippingInfos()->getDisplayName();
386
  $quote->getShippingAddress()->setShippingDescription($title);
387
  $quote->save();
388
-
389
  // due to compatibility with 3rd party modules which fetches the quote from the session (like phoenix_cod, SUE)
390
  // needed before $service->submitAll() is called
391
  Mage::getSingleton('checkout/session')->replaceQuote($quote);
392
-
393
  $magentoOrder = $this->_getFactory()->createNewOrder($quote);
394
 
395
  $this->log("# Create order from quote", ShopgateLogger::LOGTYPE_DEBUG);
@@ -400,9 +408,9 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
400
  $magentoOrder = $this->executeLoaders($this->_getCreateOrderLoaders(), $magentoOrder, $order);
401
  $magentoOrder->setShippingDescription($title);
402
  $magentoOrder->setShippingMethod($method);
403
-
404
  //todo: move this out, intentionally here after executeLoaders?
405
- if ($magentoOrder->getTotalDue() > 0
406
  && $order->getPaymentMethod() == ShopgateOrder::PP_WSPP_CC
407
  ) {
408
  if (!$magentoOrder->getPayment()->getIsTransactionPending()) {
@@ -429,11 +437,11 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
429
  $totalShopgate = $order->getAmountComplete();
430
  $totalMagento = $magentoOrder->getTotalDue();
431
  $this->log(
432
- "
433
  Total Shopgate: {$totalShopgate} {$order->getCurrency()}
434
  Total Magento: {$totalMagento} {$order->getCurrency()}
435
  ",
436
- ShopgateLogger::LOGTYPE_DEBUG
437
  );
438
 
439
  $result = array(
@@ -456,7 +464,11 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
456
  throw $e;
457
  } catch (Exception $e) {
458
  Mage::getModel("sales/order")->getResource()->rollback();
459
- throw new ShopgateLibraryException(ShopgateLibraryException::UNKNOWN_ERROR_CODE, "{$e->getMessage()}\n{$e->getTraceAsString()}", true);
 
 
 
 
460
  }
461
 
462
  return $result;
@@ -504,8 +516,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
504
  continue;
505
  }
506
 
507
- $orderInfo = $item->getInternalOrderInfo();
508
- $orderInfo = $this->jsonDecode($orderInfo, true);
509
 
510
  $stackQuantity = 1;
511
  if (!empty($orderInfo['stack_quantity']) && $orderInfo['stack_quantity'] > 1) {
@@ -514,35 +526,35 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
514
 
515
  $pId = $orderInfo["product_id"];
516
  /** @var Mage_Catalog_Model_Product $product */
517
- $product = Mage::getModel('catalog/product')->setStoreId($this->_getConfig()->getStoreViewId())
518
- ->load($pId);
519
 
520
  if (!$product->getId()) {
521
  throw new ShopgateLibraryException(
522
  ShopgateLibraryException::CART_ITEM_PRODUCT_NOT_FOUND, 'product ID: ' . $pId, true
523
  );
524
  }
525
-
526
  $itemNumber = $item->getItemNumber();
527
- $productWeight = NULL;
528
 
529
  if (strpos($itemNumber, '-') !== false) {
530
  $productWeight = $product->getTypeInstance()->getWeight();
531
- $productIds = explode('-', $itemNumber);
532
- $parentId = $productIds[0];
533
  /** @var Mage_Catalog_Model_Product $parent */
534
  $parent = Mage::getModel('catalog/product')->setStoreId($this->_getConfig()->getStoreViewId())
535
  ->load($parentId);
536
- if ($parent->isConfigurable()
537
- && !$this->_getConfig()->addOnlySimplesToCart()
538
- ) {
539
  $buyObject = $this->_createQuoteItemBuyInfo($item, $parent, $stackQuantity);
540
  $superAttributes = $parent->getTypeInstance(true)->getConfigurableAttributesAsArray($parent);
541
  $superAttConfig = array();
542
 
543
  foreach ($superAttributes as $productAttribute) {
544
  $superAttConfig[$productAttribute['attribute_id']] = $product->getData(
545
- $productAttribute['attribute_code']
546
  );
547
  }
548
  $buyObject->setSuperAttribute($superAttConfig);
@@ -568,7 +580,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
568
  throw new ShopgateLibraryException(
569
  ShopgateLibraryException::UNKNOWN_ERROR_CODE,
570
  "Error on adding product to quote! Details: " . var_export($quoteItem, true),
571
- true);
 
572
  }
573
  }
574
  $quoteItem = $quote->getItemByProduct($product);
@@ -746,33 +759,19 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
746
  }
747
  $itemAmount = $item->getUnitAmountWithTax();
748
  }
749
-
750
 
751
  $obj = new Varien_Object();
752
  $obj->setName($item->getName());
753
  $obj->setItemNumber($item->getItemNumber());
754
  $obj->setUnitAmountWithTax($itemAmount);
 
755
  $this->_virtualObjectStack[] = $obj;
756
  }
757
- } else {
758
- if ($order instanceof ShopgateCart) {
759
- foreach ($order->getShopgateCoupons() as $coupon) {
760
- /** @var ShopgateShopgateCoupon $coupon */
761
- $obj = new Varien_Object();
762
- $obj->setName($coupon->getName());
763
- $obj->setItemNumber("COUPON");
764
- $obj->setUnitAmountWithTax(-1 * $coupon->getAmount());
765
- $this->_virtualObjectStack[] = $obj;
766
- }
767
- } else {
768
- throw new ShopgateLibraryException(ShopgateLibraryException::UNKNOWN_ERROR_CODE);
769
- }
770
  }
771
  }
772
 
773
  /**
774
  * Set the payment for the given quote
775
- * Default: Shopgate, Paypal or ShopgateGeneric
776
  *
777
  * @param Mage_Sales_Model_Quote $quote
778
  * @param ShopgateOrder $order
@@ -783,10 +782,6 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
783
  {
784
  $payment = $this->_getFactory()->getPaymentModel();
785
 
786
- if (!$payment) {
787
- $payment = $this->_getOrderHelper()->getMagentoPaymentMethod($order->getPaymentMethod());
788
- }
789
-
790
  $paymentInfo = array();
791
  $info = $order->getPaymentInfos();
792
 
@@ -877,33 +872,19 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
877
  }
878
 
879
  $quote->setIsSuperMode(true);
880
- $name = '';
881
- $number = '';
882
- $amountWithTax = 0.0;
883
 
884
  foreach ($this->_virtualObjectStack as $obj) {
885
  /* @var $obj Varien_Object */
886
- $name .= ('' == $name ? '' : ', ') . $obj->getName();
887
- $number .= ('' == $number ? '' : ', ') . $obj->getItemNumber();
888
- $amountWithTax += $obj->getUnitAmountWithTax();
889
 
890
  /* @var $merged Mage_Catalog_Model_Product */
891
- $merged = Mage::getModel('catalog/product');
892
- $merged->setPriceCalculation(false);
893
- $merged->setName($name);
894
- $merged->setSku($number);
895
- $merged->setPrice($amountWithTax);
896
-
897
- // typeid is important for magento 1.4
898
- $merged->setTypeId(Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL);
899
 
900
  /* @var $quoteItem Mage_Sales_Model_Quote_Item */
901
- $quoteItem = $quote->addProduct($merged, 1);
902
-
903
  $quoteItem->setCustomPrice($amountWithTax);
904
  $quoteItem->setOriginalPrice($amountWithTax);
905
  $quoteItem->setOriginalCustomPrice($amountWithTax);
906
-
907
  $quoteItem->setNoDiscount(true);
908
  $quoteItem->setRowWeight(0);
909
  $quoteItem->setWeeeTaxApplied(serialize(array()));
@@ -922,25 +903,29 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
922
  protected function _setQuoteCustomer($quote, $order)
923
  {
924
  /* @var $customer Mage_Customer_Model_Customer */
925
- $customer = Mage::getModel('customer/customer');
926
  $externalCustomerId = $order->getExternalCustomerId();
927
  if ($externalCustomerId) {
928
  $this->log('external customer id: ' . $externalCustomerId, ShopgateLogger::LOGTYPE_DEBUG);
929
  $customer->load($externalCustomerId);
930
  if (!$customer->getId()) {
931
- throw new ShopgateLibraryException(ShopgateLibraryException::UNKNOWN_ERROR_CODE,
932
- sprintf('customer with external id \'%s\' does not exist', $externalCustomerId));
 
 
933
  } else {
934
  $quote->setCustomer($customer);
935
  $this->log('external customer loaded', ShopgateLogger::LOGTYPE_DEBUG);
936
  }
937
  }
938
- $invoiceAddress = $order->getInvoiceAddress();
939
  if ($invoiceAddress) {
940
  $this->log('invoice address start', ShopgateLogger::LOGTYPE_DEBUG);
941
  $quote->getBillingAddress()->setShouldIgnoreValidation(true);
942
  $billingAddressData = $this->_getSalesHelper()->createAddressData(
943
- $order, $order->getInvoiceAddress(), true
 
 
944
  );
945
  $billingAddress = $quote->getBillingAddress()->addData($billingAddressData);
946
  $this->log('invoice address end', ShopgateLogger::LOGTYPE_DEBUG);
@@ -952,17 +937,19 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
952
 
953
  $quote->getShippingAddress()->setShouldIgnoreValidation(true);
954
  $shippingAddressData = $this->_getSalesHelper()->createAddressData(
955
- $order, $order->getDeliveryAddress(), false
 
 
956
  );
957
  $shippingAddress = $quote->getShippingAddress()->addData($shippingAddressData);
958
 
959
  $this->_getHelper()->setShippingMethod($shippingAddress, $order);
960
  $this->log('delivery address end', ShopgateLogger::LOGTYPE_DEBUG);
961
  }
962
-
963
  $quote->setCustomerEmail($order->getMail());
964
  $this->log('customer email: ' . $order->getMail(), ShopgateLogger::LOGTYPE_DEBUG);
965
-
966
  if ($invoiceAddress) {
967
  $this->log('invoice address start (names)', ShopgateLogger::LOGTYPE_DEBUG);
968
 
@@ -972,13 +959,13 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
972
 
973
  $this->log('invoice address end (names)', ShopgateLogger::LOGTYPE_DEBUG);
974
  }
975
-
976
  $externalCustomerId = $order->getExternalCustomerId();
977
  if (empty($externalCustomerId)) {
978
  $this->log('external customer number unavailable', ShopgateLogger::LOGTYPE_DEBUG);
979
  $quote->setCustomerIsGuest(1);
980
- $quote->getShippingAddress();
981
- $quote->getBillingAddress();
982
  } else {
983
  $this->log('external customer number available', ShopgateLogger::LOGTYPE_DEBUG);
984
 
@@ -991,25 +978,25 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
991
  $shippingAddress->setCustomerAddressId($deliveryAddress->getId());
992
  }
993
  }
994
-
995
  Mage::register(
996
  'rule_data',
997
  new Varien_Object(
998
  array(
999
- 'store_id' => Mage::app()->getStore()->getId(),
1000
- 'website_id' => Mage::app()->getStore()->getWebsiteId(),
1001
  'customer_group_id' => $quote->getCustomerGroupId()
1002
  )
1003
  )
1004
  );
1005
-
1006
  $quote->setIsActive("0");
1007
  $quote->setRemoteIp("shopgate.com");
1008
  $quote->save();
1009
- if (empty($externalCustomerId)) {
1010
- $quote->getBillingAddress()->isObjectNew(false);
1011
- $quote->getShippingAddress()->isObjectNew(false);
1012
- }
1013
  return $quote;
1014
  }
1015
 
@@ -1036,7 +1023,10 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1036
  if ($order instanceof ShopgateOrder) {
1037
 
1038
  if (!$coupon->getInternalInfo()) {
1039
- throw new ShopgateLibraryException(ShopgateLibraryException::COUPON_NOT_VALID, 'Field "internal_info" is empty.');
 
 
 
1040
  }
1041
  /** @var Mage_SalesRule_Model_Coupon $mageCoupon */
1042
  if ($this->_getConfigHelper()->getIsMagentoVersionLower1410()) {
@@ -1159,19 +1149,26 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1159
  {
1160
  $order->addStatusHistoryComment($this->_getHelper()->__("[SHOPGATE] Order added by Shopgate."), false);
1161
  $order->addStatusHistoryComment(
1162
- $this->_getHelper()->__(
1163
- "[SHOPGATE] Shopgate order number: %s",
1164
- $shopgateOrder->getOrderNumber()
1165
- ),
1166
- false
1167
  );
1168
 
1169
- if (Mage::getStoreConfig(Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_ORDER_CUSTOMFIELDS_TO_STATUSHISTORY,
1170
- $this->_getConfig()->getStoreViewId())) {
 
 
 
1171
  foreach ($shopgateOrder->getCustomFields() as $field) {
1172
  $order->addStatusHistoryComment(
1173
- $this->_getHelper()
1174
- ->__("[SHOPGATE] Custom fields:") . "\n\"" . addslashes($field->getLabel()) . "\" => \"" . addslashes($field->getValue()) . "\"", false);
 
 
 
 
1175
  }
1176
  }
1177
 
@@ -1197,8 +1194,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1197
  {
1198
  $this->log("## Start to update Order", ShopgateLogger::LOGTYPE_DEBUG);
1199
  $this->log(
1200
- "## Order-Number: {$order->getOrderNumber()}",
1201
- ShopgateLogger::LOGTYPE_DEBUG
1202
  );
1203
 
1204
  Mage::dispatchEvent('shopgate_update_order_before', array('shopgate_order' => $order));
@@ -1207,8 +1204,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1207
 
1208
  /** @var Shopgate_Framework_Model_Shopgate_Order $shopgateOrder */
1209
  $shopgateOrder = Mage::getModel("shopgate/shopgate_order")->load(
1210
- $order->getOrderNumber(),
1211
- 'shopgate_order_number'
1212
  );
1213
 
1214
  if ($shopgateOrder->getId() == null) {
@@ -1221,8 +1218,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1221
  $magentoOrder = $shopgateOrder->getOrder();
1222
  $magentoOrder = $this->_getUpdateOrderLoaders($magentoOrder, $order, $shopgateOrder);
1223
  $magentoOrder->addStatusHistoryComment(
1224
- $this->_getHelper()->__("[SHOPGATE] Order updated by Shopgate."),
1225
- false
1226
  );
1227
 
1228
  $magentoOrder->save();
@@ -1413,7 +1410,7 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1413
  }
1414
  }
1415
  } else {
1416
- $stateObject = new Varien_Object();
1417
  $methodInstance = $magentoOrder->getPayment()->getMethodInstance();
1418
  if ($shopgateOrder->getPaymentMethod() != ShopgateOrder::AMAZON_PAYMENT
1419
  && strpos($shopgateOrder->getPaymentMethod(), 'PAYONE') === false
@@ -1469,41 +1466,9 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1469
  *
1470
  * @return Mage_Sales_Model_Order
1471
  */
1472
- protected function _setOrderPayment($magentoOrder, $shopgateOrder)
1473
  {
1474
- /** @var Shopgate_Framework_Model_Payment_Factory $factory */
1475
- $factory = $this->_getFactory();
1476
- if ($factory->validatePaymentClass()) {
1477
- return $factory->manipulateOrderWithPaymentData($magentoOrder);
1478
- }
1479
-
1480
- // Abstract will handle anything that doesn't have a manipulateOrder function
1481
- if ($shopgateOrder->getIsPaid() && $magentoOrder->getBaseTotalDue()) {
1482
- $magentoOrder->getPayment()->setShouldCloseParentTransaction(true);
1483
- $magentoOrder->getPayment()->registerCaptureNotification($shopgateOrder->getAmountComplete());
1484
-
1485
- $magentoOrder->addStatusHistoryComment($this->_getHelper()->__("[SHOPGATE] Payment received."), false)
1486
- ->setIsCustomerNotified(false);
1487
-
1488
- if ($shopgateOrder->getPaymentMethod() === ShopgateOrder::PAYPAL) {
1489
- try {
1490
- $transaction = Mage::getModel("sales/order_payment_transaction");
1491
- $transaction->setOrderPaymentObject($magentoOrder->getPayment());
1492
- $transaction->setIsClosed(false);
1493
- $transaction->setTxnId($shopgateOrder->getPaymentTransactionNumber());
1494
- $transaction->setTxnType(Mage_Sales_Model_Order_Payment_Transaction::TYPE_CAPTURE);
1495
- $transaction->save();
1496
-
1497
- $magentoOrder->getPayment()->importTransactionInfo($transaction);
1498
- } catch (Exception $x) {
1499
- $this->log($x->getMessage());
1500
- }
1501
- }
1502
- }
1503
-
1504
- $magentoOrder->getPayment()->setLastTransId($shopgateOrder->getPaymentTransactionNumber());
1505
-
1506
- return $magentoOrder;
1507
  }
1508
 
1509
  /**
@@ -1644,10 +1609,10 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1644
  if (!$amountCoupon && !$externalCoupon->getIsFreeShipping()) {
1645
  $externalCoupon->setIsValid(false);
1646
  $externalCoupon->setNotValidMessage(
1647
- $this->_getHelper()->__(
1648
- 'Coupon code "%s" is not valid.',
1649
- Mage::helper('core')->htmlEscape($coupon->getCode())
1650
- )
1651
  );
1652
  }
1653
 
@@ -1655,10 +1620,10 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1655
  } else {
1656
  $externalCoupon->setIsValid(false);
1657
  $externalCoupon->setNotValidMessage(
1658
- $this->_getHelper()->__(
1659
- 'Coupon code "%s" is not valid.',
1660
- Mage::helper('core')->htmlEscape($coupon->getCode())
1661
- )
1662
  );
1663
  }
1664
 
@@ -1707,15 +1672,16 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1707
  "payment_methods" => array(),
1708
  "items" => array(),
1709
  "customer" => $this->_getSalesHelper()->getCustomerData(
1710
- $cart, $this->_getConfig()->getStoreViewId()
1711
- )
 
1712
  );
1713
 
1714
- if ($mageCart->getQuote()->hasItems()
1715
  && $shippingMethods = $this->_getSalesHelper()->getShippingMethods($mageCart)
1716
  ) {
1717
- $response["shipping_methods"] = $shippingMethods;
1718
- }
1719
 
1720
  if ($coupon = $this->checkCoupons($mageCart, $cart)) {
1721
  $response["external_coupons"] = $coupon;
@@ -1967,8 +1933,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1967
  $this->setDefaultItemRowOptionCount($this->_getHelper()->getMaxOptionCount());
1968
 
1969
  $this->log(
1970
- 'number of options to be exported: ' . $this->getDefaultItemRowOptionCount(),
1971
- ShopgateLogger::LOGTYPE_DEBUG
1972
  );
1973
 
1974
  $start = time();
@@ -1989,8 +1955,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
1989
  /** @var Mage_Catalog_Model_Product $product */
1990
  if ($this->_getExportHelper()->productHasRequiredFileOption($product)) {
1991
  $this->log(
1992
- "Exclude Product with ID: {$product->getId()} from CSV: custom option type file",
1993
- ShopgateLogger::LOGTYPE_DEBUG
1994
  );
1995
  continue;
1996
  }
@@ -2000,23 +1966,23 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2000
  $memoryPeekUsage = round(($memoryPeekUsage / 1024 / 1024), 2);
2001
 
2002
  $this->log(
2003
- "[{$product->getId()}] Start Load Product with ID: {$product->getId()}",
2004
- ShopgateLogger::LOGTYPE_DEBUG
2005
  );
2006
  $this->log("Memory usage: {$memoryUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
2007
  $this->log("Memory peek usage: {$memoryPeekUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
2008
 
2009
  $this->log(
2010
- "[{$product->getId()}] Product-Data:\n" . print_r(
2011
- array(
2012
- "id" => $product->getId(),
2013
- "name" => $product->getName(),
2014
- "sku" => $product->getSku(),
2015
- "type" => $product->getTypeId(),
2016
- ),
2017
- true
2018
- ),
2019
- ShopgateLogger::LOGTYPE_DEBUG
2020
  );
2021
 
2022
  if ($product->isSuper()) {
@@ -2076,14 +2042,15 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2076
 
2077
  if ($xml) {
2078
  $collection->addAttributeToFilter(
2079
- 'visibility',
2080
- array('in' =>
2081
- array(
2082
- Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH,
2083
- Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG,
2084
- Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH
2085
- )
2086
- )
 
2087
  );
2088
  }
2089
  $collection->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
@@ -2096,7 +2063,7 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2096
  $this->log("Offset: " . $this->exportOffset, ShopgateLogger::LOGTYPE_ACCESS);
2097
  $this->log("[*] Offset: {$this->exportOffset}", ShopgateLogger::LOGTYPE_DEBUG);
2098
  } else {
2099
- $ids = $collection->getAllIds();
2100
  }
2101
 
2102
  return $ids;
@@ -2154,14 +2121,14 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2154
  $this->log("[*] Export Start...", ShopgateLogger::LOGTYPE_DEBUG);
2155
 
2156
  $this->log(
2157
- 'number of options to be exported: ' . $this->getDefaultItemRowOptionCount(),
2158
- ShopgateLogger::LOGTYPE_DEBUG
2159
  );
2160
 
2161
  $start = time();
2162
  $productIds = $uids ? $uids : $this->_getExportProduct(true, $limit, $offset);
2163
  $oldVersion = $this->_getConfigHelper()->getIsMagentoVersionLower15();
2164
-
2165
  $i = 1;
2166
 
2167
  foreach ($productIds as $productId) {
@@ -2171,14 +2138,14 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2171
  $this->log("#{$i}", ShopgateLogger::LOGTYPE_DEBUG);
2172
  $i++;
2173
 
2174
- /** @var Mage_Catalog_Model_Product $product */
2175
- if ($this->_getExportHelper()->productHasRequiredFileOption($product)) {
2176
- $this->log(
2177
- "Exclude Product with ID: {$product->getId()} from CSV: custom option type file",
2178
- ShopgateLogger::LOGTYPE_DEBUG
2179
- );
2180
- continue;
2181
- }
2182
 
2183
  $memoryUsage = memory_get_usage(true);
2184
  $memoryUsage = round(($memoryUsage / 1024 / 1024), 2);
@@ -2186,23 +2153,23 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2186
  $memoryPeekUsage = round(($memoryPeekUsage / 1024 / 1024), 2);
2187
 
2188
  $this->log(
2189
- "[{$product->getId()}] Start Load Product with ID: {$product->getId()}",
2190
- ShopgateLogger::LOGTYPE_DEBUG
2191
  );
2192
  $this->log("Memory usage: {$memoryUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
2193
  $this->log("Memory peek usage: {$memoryPeekUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
2194
 
2195
  $this->log(
2196
- "[{$product->getId()}] Product-Data:\n" . print_r(
2197
- array(
2198
- "id" => $product->getId(),
2199
- "name" => $product->getName(),
2200
- "sku" => $product->getSku(),
2201
- "type" => $product->getTypeId(),
2202
- ),
2203
- true
2204
- ),
2205
- ShopgateLogger::LOGTYPE_DEBUG
2206
  );
2207
 
2208
  $this->addItem($this->_buildProductItem($product));
@@ -2237,7 +2204,7 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2237
  */
2238
  protected function createReviewsCsv()
2239
  {
2240
- $reviews = $this->_getReviewCollection($this->exportLimit, $this->exportOffset);
2241
  $reviewExportModel = Mage::getModel('shopgate/export_review_csv');
2242
  $reviewExportModel->setDefaultRow($this->buildDefaultReviewRow());
2243
  foreach ($reviews as $review) {
@@ -2332,7 +2299,7 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2332
  */
2333
  public function setUseTaxClasses($bool)
2334
  {
2335
- $this->useTaxClasses = $bool;
2336
  }
2337
 
2338
  /** ========================================= SETTING EXPORT END ================================================ */
@@ -2383,19 +2350,19 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2383
  }
2384
 
2385
  /**
2386
- * @return Shopgate_Framework_Helper_Data
2387
  */
2388
- protected function _getDataHelper()
2389
  {
2390
- return Mage::helper('shopgate/data');
2391
  }
2392
 
2393
  /**
2394
- * @return Shopgate_Framework_Helper_Payment_Abstract
2395
  */
2396
- protected function _getPaymentHelper()
2397
  {
2398
- return Mage::helper('shopgate/payment_abstract');
2399
  }
2400
 
2401
  /**
@@ -2409,14 +2376,6 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2409
  return $this->_exportProductInstance;
2410
  }
2411
 
2412
- /**
2413
- * @return Shopgate_Framework_Helper_Import_Order
2414
- */
2415
- protected function _getOrderHelper()
2416
- {
2417
- return Mage::helper('shopgate/import_order');
2418
- }
2419
-
2420
  /** ========================================== HELPER METHODS END ================================================*/
2421
  /** ========================================== HELPER METHODS END ================================================*/
2422
  /** ========================================== HELPER METHODS END ================================================*/
@@ -2449,8 +2408,8 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
2449
  public function createShopInfo()
2450
  {
2451
  $shopInfo = parent::createShopInfo();
2452
- $entitiesCount = $this->_getDataHelper()->getEntitiesCount($this->config->getStoreViewId());
2453
- $pluginsInstalled = array('plugins_installed' => $this->_getDataHelper()->getThirdPartyModules());
2454
 
2455
  return array_merge($shopInfo, $entitiesCount, $pluginsInstalled);
2456
  }
76
  * @var null | Shopgate_Framework_Model_Payment_Factory
77
  */
78
  protected $_factory = null;
79
+
80
  /**
81
  * Callback function for initialization by plugin implementations.
82
  * This method gets called on instantiation of a ShopgatePlugin child class and serves as __construct() replacement.
89
  /* @var $config Shopgate_Framework_Helper_Config */
90
  $this->_config = $this->_getConfig();
91
  $this->_defaultTax = Mage::getModel("tax/calculation")->getDefaultCustomerTaxClass(
92
+ $this->_getConfig()->getStoreViewId()
93
  );
94
  return true;
95
  }
96
 
97
  /**
98
  * Simple setter
99
+ *
100
  * @param $factory Shopgate_Framework_Model_Payment_Factory
101
  */
102
  protected function _setFactory(Shopgate_Framework_Model_Payment_Factory $factory)
106
 
107
  /**
108
  * Factory getter
109
+ *
110
  * @return null|Shopgate_Framework_Model_Payment_Factory
111
  */
112
  protected function _getFactory()
113
  {
114
+ if (!$this->_factory) {
115
+ $shopgateOrder = Mage::getModel('core/session')->getShopgateOrder();
116
+ $factory = Mage::getModel('shopgate/payment_factory', $shopgateOrder);
117
  $this->_setFactory($factory);
118
  }
119
  return $this->_factory;
120
  }
121
+
122
  /**
123
  *
124
  * @param string $action
165
  $this->_cronCancelOrder();
166
  break;
167
  default:
168
+ throw new ShopgateLibraryException(
169
+ ShopgateLibraryException::PLUGIN_CRON_UNSUPPORTED_JOB,
170
+ '"' . $jobname . '"', true
171
+ );
172
  }
173
 
174
  $this->log("END Run CRON-Jobs", ShopgateLogger::LOGTYPE_DEBUG);
219
  continue;
220
  }
221
  $this->log(
222
+ ">> Order with ID {$order->getId()} loaded and ready for cancellation",
223
+ ShopgateLogger::LOGTYPE_DEBUG
224
  );
225
  $this->log(">> Dispatching event order_cancel_after", ShopgateLogger::LOGTYPE_DEBUG);
226
  Mage::dispatchEvent('order_cancel_after', array('order' => $order, 'shopgate_order' => $shopgateOrder));
284
  if ($e->getCode() == Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS) {
285
  throw new ShopgateLibraryException(ShopgateLibraryException::REGISTER_USER_ALREADY_EXISTS);
286
  } else {
287
+ throw new ShopgateLibraryException(
288
+ ShopgateLibraryException::REGISTER_FAILED_TO_ADD_USER,
289
+ $e->getMessage(),
290
+ true
291
+ );
292
  }
293
  } catch (Exception $e) {
294
  throw new ShopgateLibraryException(ShopgateLibraryException::UNKNOWN_ERROR_CODE, $e->getMessage(), true);
327
  $this->log("# Try to load old shopgate order to check for duplicate", ShopgateLogger::LOGTYPE_DEBUG);
328
  /** @var Shopgate_Framework_Model_Shopgate_Order $magentoShopgateOrder */
329
  $magentoShopgateOrder = Mage::getModel("shopgate/shopgate_order")->load(
330
+ $order->getOrderNumber(),
331
+ "shopgate_order_number"
332
  );
333
 
334
  if ($magentoShopgateOrder->getId() !== null) {
339
  $orderId = $magentoShopgateOrder->getOrderId();
340
  }
341
 
342
+ throw new ShopgateLibraryException(
343
+ ShopgateLibraryException::PLUGIN_DUPLICATE_ORDER,
344
+ 'orderId: ' . $orderId, true
345
+ );
346
  }
347
  Mage::dispatchEvent('shopgate_add_order_before', array('shopgate_order' => $order));
348
  $this->log("# Add shopgate order to Session", ShopgateLogger::LOGTYPE_DEBUG);
393
  $title = $title ? $title : $order->getShippingInfos()->getDisplayName();
394
  $quote->getShippingAddress()->setShippingDescription($title);
395
  $quote->save();
396
+
397
  // due to compatibility with 3rd party modules which fetches the quote from the session (like phoenix_cod, SUE)
398
  // needed before $service->submitAll() is called
399
  Mage::getSingleton('checkout/session')->replaceQuote($quote);
400
+
401
  $magentoOrder = $this->_getFactory()->createNewOrder($quote);
402
 
403
  $this->log("# Create order from quote", ShopgateLogger::LOGTYPE_DEBUG);
408
  $magentoOrder = $this->executeLoaders($this->_getCreateOrderLoaders(), $magentoOrder, $order);
409
  $magentoOrder->setShippingDescription($title);
410
  $magentoOrder->setShippingMethod($method);
411
+
412
  //todo: move this out, intentionally here after executeLoaders?
413
+ if ($magentoOrder->getTotalDue() > 0
414
  && $order->getPaymentMethod() == ShopgateOrder::PP_WSPP_CC
415
  ) {
416
  if (!$magentoOrder->getPayment()->getIsTransactionPending()) {
437
  $totalShopgate = $order->getAmountComplete();
438
  $totalMagento = $magentoOrder->getTotalDue();
439
  $this->log(
440
+ "
441
  Total Shopgate: {$totalShopgate} {$order->getCurrency()}
442
  Total Magento: {$totalMagento} {$order->getCurrency()}
443
  ",
444
+ ShopgateLogger::LOGTYPE_DEBUG
445
  );
446
 
447
  $result = array(
464
  throw $e;
465
  } catch (Exception $e) {
466
  Mage::getModel("sales/order")->getResource()->rollback();
467
+ throw new ShopgateLibraryException(
468
+ ShopgateLibraryException::UNKNOWN_ERROR_CODE,
469
+ "{$e->getMessage()}\n{$e->getTraceAsString()}",
470
+ true
471
+ );
472
  }
473
 
474
  return $result;
516
  continue;
517
  }
518
 
519
+ $orderInfo = $item->getInternalOrderInfo();
520
+ $orderInfo = $this->jsonDecode($orderInfo, true);
521
 
522
  $stackQuantity = 1;
523
  if (!empty($orderInfo['stack_quantity']) && $orderInfo['stack_quantity'] > 1) {
526
 
527
  $pId = $orderInfo["product_id"];
528
  /** @var Mage_Catalog_Model_Product $product */
529
+ $product = Mage::getModel('catalog/product')->setStoreId($this->_getConfig()->getStoreViewId())
530
+ ->load($pId);
531
 
532
  if (!$product->getId()) {
533
  throw new ShopgateLibraryException(
534
  ShopgateLibraryException::CART_ITEM_PRODUCT_NOT_FOUND, 'product ID: ' . $pId, true
535
  );
536
  }
537
+
538
  $itemNumber = $item->getItemNumber();
539
+ $productWeight = null;
540
 
541
  if (strpos($itemNumber, '-') !== false) {
542
  $productWeight = $product->getTypeInstance()->getWeight();
543
+ $productIds = explode('-', $itemNumber);
544
+ $parentId = $productIds[0];
545
  /** @var Mage_Catalog_Model_Product $parent */
546
  $parent = Mage::getModel('catalog/product')->setStoreId($this->_getConfig()->getStoreViewId())
547
  ->load($parentId);
548
+ if ($parent->isConfigurable()
549
+ && !$this->_getConfig()->addOnlySimplesToCart()
550
+ ) {
551
  $buyObject = $this->_createQuoteItemBuyInfo($item, $parent, $stackQuantity);
552
  $superAttributes = $parent->getTypeInstance(true)->getConfigurableAttributesAsArray($parent);
553
  $superAttConfig = array();
554
 
555
  foreach ($superAttributes as $productAttribute) {
556
  $superAttConfig[$productAttribute['attribute_id']] = $product->getData(
557
+ $productAttribute['attribute_code']
558
  );
559
  }
560
  $buyObject->setSuperAttribute($superAttConfig);
580
  throw new ShopgateLibraryException(
581
  ShopgateLibraryException::UNKNOWN_ERROR_CODE,
582
  "Error on adding product to quote! Details: " . var_export($quoteItem, true),
583
+ true
584
+ );
585
  }
586
  }
587
  $quoteItem = $quote->getItemByProduct($product);
759
  }
760
  $itemAmount = $item->getUnitAmountWithTax();
761
  }
 
762
 
763
  $obj = new Varien_Object();
764
  $obj->setName($item->getName());
765
  $obj->setItemNumber($item->getItemNumber());
766
  $obj->setUnitAmountWithTax($itemAmount);
767
+ $obj->setQty($item->getQuantity());
768
  $this->_virtualObjectStack[] = $obj;
769
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
770
  }
771
  }
772
 
773
  /**
774
  * Set the payment for the given quote
 
775
  *
776
  * @param Mage_Sales_Model_Quote $quote
777
  * @param ShopgateOrder $order
782
  {
783
  $payment = $this->_getFactory()->getPaymentModel();
784
 
 
 
 
 
785
  $paymentInfo = array();
786
  $info = $order->getPaymentInfos();
787
 
872
  }
873
 
874
  $quote->setIsSuperMode(true);
 
 
 
875
 
876
  foreach ($this->_virtualObjectStack as $obj) {
877
  /* @var $obj Varien_Object */
878
+ $amountWithTax = $obj->getUnitAmountWithTax();
 
 
879
 
880
  /* @var $merged Mage_Catalog_Model_Product */
881
+ $merged = $this->_getCouponHelper()->createProductFromShopgateCoupon($obj);
 
 
 
 
 
 
 
882
 
883
  /* @var $quoteItem Mage_Sales_Model_Quote_Item */
884
+ $quoteItem = $quote->addProduct($merged, $obj->getQty());
 
885
  $quoteItem->setCustomPrice($amountWithTax);
886
  $quoteItem->setOriginalPrice($amountWithTax);
887
  $quoteItem->setOriginalCustomPrice($amountWithTax);
 
888
  $quoteItem->setNoDiscount(true);
889
  $quoteItem->setRowWeight(0);
890
  $quoteItem->setWeeeTaxApplied(serialize(array()));
903
  protected function _setQuoteCustomer($quote, $order)
904
  {
905
  /* @var $customer Mage_Customer_Model_Customer */
906
+ $customer = Mage::getModel('customer/customer');
907
  $externalCustomerId = $order->getExternalCustomerId();
908
  if ($externalCustomerId) {
909
  $this->log('external customer id: ' . $externalCustomerId, ShopgateLogger::LOGTYPE_DEBUG);
910
  $customer->load($externalCustomerId);
911
  if (!$customer->getId()) {
912
+ throw new ShopgateLibraryException(
913
+ ShopgateLibraryException::UNKNOWN_ERROR_CODE,
914
+ sprintf('customer with external id \'%s\' does not exist', $externalCustomerId)
915
+ );
916
  } else {
917
  $quote->setCustomer($customer);
918
  $this->log('external customer loaded', ShopgateLogger::LOGTYPE_DEBUG);
919
  }
920
  }
921
+ $invoiceAddress = $order->getInvoiceAddress();
922
  if ($invoiceAddress) {
923
  $this->log('invoice address start', ShopgateLogger::LOGTYPE_DEBUG);
924
  $quote->getBillingAddress()->setShouldIgnoreValidation(true);
925
  $billingAddressData = $this->_getSalesHelper()->createAddressData(
926
+ $order,
927
+ $order->getInvoiceAddress(),
928
+ true
929
  );
930
  $billingAddress = $quote->getBillingAddress()->addData($billingAddressData);
931
  $this->log('invoice address end', ShopgateLogger::LOGTYPE_DEBUG);
937
 
938
  $quote->getShippingAddress()->setShouldIgnoreValidation(true);
939
  $shippingAddressData = $this->_getSalesHelper()->createAddressData(
940
+ $order,
941
+ $order->getDeliveryAddress(),
942
+ false
943
  );
944
  $shippingAddress = $quote->getShippingAddress()->addData($shippingAddressData);
945
 
946
  $this->_getHelper()->setShippingMethod($shippingAddress, $order);
947
  $this->log('delivery address end', ShopgateLogger::LOGTYPE_DEBUG);
948
  }
949
+
950
  $quote->setCustomerEmail($order->getMail());
951
  $this->log('customer email: ' . $order->getMail(), ShopgateLogger::LOGTYPE_DEBUG);
952
+
953
  if ($invoiceAddress) {
954
  $this->log('invoice address start (names)', ShopgateLogger::LOGTYPE_DEBUG);
955
 
959
 
960
  $this->log('invoice address end (names)', ShopgateLogger::LOGTYPE_DEBUG);
961
  }
962
+
963
  $externalCustomerId = $order->getExternalCustomerId();
964
  if (empty($externalCustomerId)) {
965
  $this->log('external customer number unavailable', ShopgateLogger::LOGTYPE_DEBUG);
966
  $quote->setCustomerIsGuest(1);
967
+ $quote->getShippingAddress();
968
+ $quote->getBillingAddress();
969
  } else {
970
  $this->log('external customer number available', ShopgateLogger::LOGTYPE_DEBUG);
971
 
978
  $shippingAddress->setCustomerAddressId($deliveryAddress->getId());
979
  }
980
  }
981
+
982
  Mage::register(
983
  'rule_data',
984
  new Varien_Object(
985
  array(
986
+ 'store_id' => Mage::app()->getStore()->getId(),
987
+ 'website_id' => Mage::app()->getStore()->getWebsiteId(),
988
  'customer_group_id' => $quote->getCustomerGroupId()
989
  )
990
  )
991
  );
992
+
993
  $quote->setIsActive("0");
994
  $quote->setRemoteIp("shopgate.com");
995
  $quote->save();
996
+ if (empty($externalCustomerId)) {
997
+ $quote->getBillingAddress()->isObjectNew(false);
998
+ $quote->getShippingAddress()->isObjectNew(false);
999
+ }
1000
  return $quote;
1001
  }
1002
 
1023
  if ($order instanceof ShopgateOrder) {
1024
 
1025
  if (!$coupon->getInternalInfo()) {
1026
+ throw new ShopgateLibraryException(
1027
+ ShopgateLibraryException::COUPON_NOT_VALID,
1028
+ 'Field "internal_info" is empty.'
1029
+ );
1030
  }
1031
  /** @var Mage_SalesRule_Model_Coupon $mageCoupon */
1032
  if ($this->_getConfigHelper()->getIsMagentoVersionLower1410()) {
1149
  {
1150
  $order->addStatusHistoryComment($this->_getHelper()->__("[SHOPGATE] Order added by Shopgate."), false);
1151
  $order->addStatusHistoryComment(
1152
+ $this->_getHelper()->__(
1153
+ "[SHOPGATE] Shopgate order number: %s",
1154
+ $shopgateOrder->getOrderNumber()
1155
+ ),
1156
+ false
1157
  );
1158
 
1159
+ if (Mage::getStoreConfig(
1160
+ Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_ORDER_CUSTOMFIELDS_TO_STATUSHISTORY,
1161
+ $this->_getConfig()->getStoreViewId()
1162
+ )
1163
+ ) {
1164
  foreach ($shopgateOrder->getCustomFields() as $field) {
1165
  $order->addStatusHistoryComment(
1166
+ $this->_getHelper()
1167
+ ->__("[SHOPGATE] Custom fields:") . "\n\"" . addslashes(
1168
+ $field->getLabel()
1169
+ ) . "\" => \"" . addslashes($field->getValue()) . "\"",
1170
+ false
1171
+ );
1172
  }
1173
  }
1174
 
1194
  {
1195
  $this->log("## Start to update Order", ShopgateLogger::LOGTYPE_DEBUG);
1196
  $this->log(
1197
+ "## Order-Number: {$order->getOrderNumber()}",
1198
+ ShopgateLogger::LOGTYPE_DEBUG
1199
  );
1200
 
1201
  Mage::dispatchEvent('shopgate_update_order_before', array('shopgate_order' => $order));
1204
 
1205
  /** @var Shopgate_Framework_Model_Shopgate_Order $shopgateOrder */
1206
  $shopgateOrder = Mage::getModel("shopgate/shopgate_order")->load(
1207
+ $order->getOrderNumber(),
1208
+ 'shopgate_order_number'
1209
  );
1210
 
1211
  if ($shopgateOrder->getId() == null) {
1218
  $magentoOrder = $shopgateOrder->getOrder();
1219
  $magentoOrder = $this->_getUpdateOrderLoaders($magentoOrder, $order, $shopgateOrder);
1220
  $magentoOrder->addStatusHistoryComment(
1221
+ $this->_getHelper()->__("[SHOPGATE] Order updated by Shopgate."),
1222
+ false
1223
  );
1224
 
1225
  $magentoOrder->save();
1410
  }
1411
  }
1412
  } else {
1413
+ $stateObject = new Varien_Object();
1414
  $methodInstance = $magentoOrder->getPayment()->getMethodInstance();
1415
  if ($shopgateOrder->getPaymentMethod() != ShopgateOrder::AMAZON_PAYMENT
1416
  && strpos($shopgateOrder->getPaymentMethod(), 'PAYONE') === false
1466
  *
1467
  * @return Mage_Sales_Model_Order
1468
  */
1469
+ protected function _setOrderPayment($magentoOrder, $shopgateOrder = null)
1470
  {
1471
+ return $this->_getFactory()->manipulateOrderWithPaymentData($magentoOrder);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1472
  }
1473
 
1474
  /**
1609
  if (!$amountCoupon && !$externalCoupon->getIsFreeShipping()) {
1610
  $externalCoupon->setIsValid(false);
1611
  $externalCoupon->setNotValidMessage(
1612
+ $this->_getHelper()->__(
1613
+ 'Coupon code "%s" is not valid.',
1614
+ Mage::helper('core')->htmlEscape($coupon->getCode())
1615
+ )
1616
  );
1617
  }
1618
 
1620
  } else {
1621
  $externalCoupon->setIsValid(false);
1622
  $externalCoupon->setNotValidMessage(
1623
+ $this->_getHelper()->__(
1624
+ 'Coupon code "%s" is not valid.',
1625
+ Mage::helper('core')->htmlEscape($coupon->getCode())
1626
+ )
1627
  );
1628
  }
1629
 
1672
  "payment_methods" => array(),
1673
  "items" => array(),
1674
  "customer" => $this->_getSalesHelper()->getCustomerData(
1675
+ $cart,
1676
+ $this->_getConfig()->getStoreViewId()
1677
+ )
1678
  );
1679
 
1680
+ if ($mageCart->getQuote()->hasItems()
1681
  && $shippingMethods = $this->_getSalesHelper()->getShippingMethods($mageCart)
1682
  ) {
1683
+ $response["shipping_methods"] = $shippingMethods;
1684
+ }
1685
 
1686
  if ($coupon = $this->checkCoupons($mageCart, $cart)) {
1687
  $response["external_coupons"] = $coupon;
1933
  $this->setDefaultItemRowOptionCount($this->_getHelper()->getMaxOptionCount());
1934
 
1935
  $this->log(
1936
+ 'number of options to be exported: ' . $this->getDefaultItemRowOptionCount(),
1937
+ ShopgateLogger::LOGTYPE_DEBUG
1938
  );
1939
 
1940
  $start = time();
1955
  /** @var Mage_Catalog_Model_Product $product */
1956
  if ($this->_getExportHelper()->productHasRequiredFileOption($product)) {
1957
  $this->log(
1958
+ "Exclude Product with ID: {$product->getId()} from CSV: custom option type file",
1959
+ ShopgateLogger::LOGTYPE_DEBUG
1960
  );
1961
  continue;
1962
  }
1966
  $memoryPeekUsage = round(($memoryPeekUsage / 1024 / 1024), 2);
1967
 
1968
  $this->log(
1969
+ "[{$product->getId()}] Start Load Product with ID: {$product->getId()}",
1970
+ ShopgateLogger::LOGTYPE_DEBUG
1971
  );
1972
  $this->log("Memory usage: {$memoryUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
1973
  $this->log("Memory peek usage: {$memoryPeekUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
1974
 
1975
  $this->log(
1976
+ "[{$product->getId()}] Product-Data:\n" . print_r(
1977
+ array(
1978
+ "id" => $product->getId(),
1979
+ "name" => $product->getName(),
1980
+ "sku" => $product->getSku(),
1981
+ "type" => $product->getTypeId(),
1982
+ ),
1983
+ true
1984
+ ),
1985
+ ShopgateLogger::LOGTYPE_DEBUG
1986
  );
1987
 
1988
  if ($product->isSuper()) {
2042
 
2043
  if ($xml) {
2044
  $collection->addAttributeToFilter(
2045
+ 'visibility',
2046
+ array(
2047
+ 'in' =>
2048
+ array(
2049
+ Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_SEARCH,
2050
+ Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG,
2051
+ Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH
2052
+ )
2053
+ )
2054
  );
2055
  }
2056
  $collection->addAttributeToFilter('status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED);
2063
  $this->log("Offset: " . $this->exportOffset, ShopgateLogger::LOGTYPE_ACCESS);
2064
  $this->log("[*] Offset: {$this->exportOffset}", ShopgateLogger::LOGTYPE_DEBUG);
2065
  } else {
2066
+ $ids = $collection->getAllIds();
2067
  }
2068
 
2069
  return $ids;
2121
  $this->log("[*] Export Start...", ShopgateLogger::LOGTYPE_DEBUG);
2122
 
2123
  $this->log(
2124
+ 'number of options to be exported: ' . $this->getDefaultItemRowOptionCount(),
2125
+ ShopgateLogger::LOGTYPE_DEBUG
2126
  );
2127
 
2128
  $start = time();
2129
  $productIds = $uids ? $uids : $this->_getExportProduct(true, $limit, $offset);
2130
  $oldVersion = $this->_getConfigHelper()->getIsMagentoVersionLower15();
2131
+
2132
  $i = 1;
2133
 
2134
  foreach ($productIds as $productId) {
2138
  $this->log("#{$i}", ShopgateLogger::LOGTYPE_DEBUG);
2139
  $i++;
2140
 
2141
+ /** @var Mage_Catalog_Model_Product $product */
2142
+ if ($this->_getExportHelper()->productHasRequiredFileOption($product)) {
2143
+ $this->log(
2144
+ "Exclude Product with ID: {$product->getId()} from CSV: custom option type file",
2145
+ ShopgateLogger::LOGTYPE_DEBUG
2146
+ );
2147
+ continue;
2148
+ }
2149
 
2150
  $memoryUsage = memory_get_usage(true);
2151
  $memoryUsage = round(($memoryUsage / 1024 / 1024), 2);
2153
  $memoryPeekUsage = round(($memoryPeekUsage / 1024 / 1024), 2);
2154
 
2155
  $this->log(
2156
+ "[{$product->getId()}] Start Load Product with ID: {$product->getId()}",
2157
+ ShopgateLogger::LOGTYPE_DEBUG
2158
  );
2159
  $this->log("Memory usage: {$memoryUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
2160
  $this->log("Memory peek usage: {$memoryPeekUsage} MB", ShopgateLogger::LOGTYPE_DEBUG);
2161
 
2162
  $this->log(
2163
+ "[{$product->getId()}] Product-Data:\n" . print_r(
2164
+ array(
2165
+ "id" => $product->getId(),
2166
+ "name" => $product->getName(),
2167
+ "sku" => $product->getSku(),
2168
+ "type" => $product->getTypeId(),
2169
+ ),
2170
+ true
2171
+ ),
2172
+ ShopgateLogger::LOGTYPE_DEBUG
2173
  );
2174
 
2175
  $this->addItem($this->_buildProductItem($product));
2204
  */
2205
  protected function createReviewsCsv()
2206
  {
2207
+ $reviews = $this->_getReviewCollection($this->exportLimit, $this->exportOffset);
2208
  $reviewExportModel = Mage::getModel('shopgate/export_review_csv');
2209
  $reviewExportModel->setDefaultRow($this->buildDefaultReviewRow());
2210
  foreach ($reviews as $review) {
2299
  */
2300
  public function setUseTaxClasses($bool)
2301
  {
2302
+ $this->useTaxClasses = $bool;
2303
  }
2304
 
2305
  /** ========================================= SETTING EXPORT END ================================================ */
2350
  }
2351
 
2352
  /**
2353
+ * @return Shopgate_Framework_Helper_Payment_Abstract
2354
  */
2355
+ protected function _getPaymentHelper()
2356
  {
2357
+ return Mage::helper('shopgate/payment_abstract');
2358
  }
2359
 
2360
  /**
2361
+ * @return Shopgate_Framework_Helper_Coupon
2362
  */
2363
+ protected function _getCouponHelper()
2364
  {
2365
+ return Mage::helper('shopgate/coupon');
2366
  }
2367
 
2368
  /**
2376
  return $this->_exportProductInstance;
2377
  }
2378
 
 
 
 
 
 
 
 
 
2379
  /** ========================================== HELPER METHODS END ================================================*/
2380
  /** ========================================== HELPER METHODS END ================================================*/
2381
  /** ========================================== HELPER METHODS END ================================================*/
2408
  public function createShopInfo()
2409
  {
2410
  $shopInfo = parent::createShopInfo();
2411
+ $entitiesCount = $this->_getHelper()->getEntitiesCount($this->config->getStoreViewId());
2412
+ $pluginsInstalled = array('plugins_installed' => $this->_getHelper()->getThirdPartyModules());
2413
 
2414
  return array_merge($shopInfo, $entitiesCount, $pluginsInstalled);
2415
  }
app/code/community/Shopgate/Framework/changelog.txt CHANGED
@@ -1,5 +1,17 @@
1
  '''English'''
2
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  '''Version 2.9.18'''
4
  * Overhaul of payment & status mapping in add_order calls
5
  * Added debug logs to vital functions of order/status mapping
1
  '''English'''
2
 
3
+ '''Version 2.9.19'''
4
+ * Fixed invoicing bug when display_errors is enabled
5
+ * COD mapping added for mage native payment
6
+ * Updated Shopgate Coupon creation logic
7
+ * PayPal Standard optimizations
8
+ * Fixed missing special prices based on catalog price rules for child products
9
+ * Added payment model mapping to classes
10
+ * Added Prepay fallback to use CheckMoneyOrder in mage v1.4-1.7
11
+ * Fixed bug with printing Mobile Payment when empty array is passed
12
+ * Changed PHP dependency from 5.2.0 to 5.3.0
13
+ * Optimized error handling when creating shipments
14
+
15
  '''Version 2.9.18'''
16
  * Overhaul of payment & status mapping in add_order calls
17
  * Added debug logs to vital functions of order/status mapping
app/code/community/Shopgate/Framework/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Shopgate_Framework>
5
- <version>2.9.18</version>
6
  </Shopgate_Framework>
7
  </modules>
8
  <global>
@@ -186,17 +186,7 @@
186
  </set_default_store_on_oauth_registration>
187
  </observers>
188
  </shopgate_save_config_after>
189
-
190
- <sales_quote_collect_totals_before>
191
- <observers>
192
- <temporaray_save_virtual_products_from_shopgate_coupons>
193
- <type>singleton</type>
194
- <class>Shopgate_Framework_Model_Observer</class>
195
- <method>saveShopgateCouponProducts</method>
196
- </temporaray_save_virtual_products_from_shopgate_coupons>
197
- </observers>
198
- </sales_quote_collect_totals_before>
199
-
200
  <sales_order_place_after>
201
  <observers>
202
  <remove_virtual_products_of_shopgate_coupons>
2
  <config>
3
  <modules>
4
  <Shopgate_Framework>
5
+ <version>2.9.19</version>
6
  </Shopgate_Framework>
7
  </modules>
8
  <global>
186
  </set_default_store_on_oauth_registration>
187
  </observers>
188
  </shopgate_save_config_after>
189
+
 
 
 
 
 
 
 
 
 
 
190
  <sales_order_place_after>
191
  <observers>
192
  <remove_virtual_products_of_shopgate_coupons>
app/design/adminhtml/default/default/template/shopgate/payment/mobile_payment.phtml CHANGED
@@ -37,5 +37,5 @@ if ($this->getShopgateOrder()->getShopgateOrderObject()->getIsTest()):?><strong
37
 
38
  <?php echo $this->__('Shopgate order number: %s', $this->getShopgateOrderNumber()); ?>
39
  <p style="margin-top: 1em;">
40
- <?php echo $this->printPaymentInfo(); ?>
41
  </p>
37
 
38
  <?php echo $this->__('Shopgate order number: %s', $this->getShopgateOrderNumber()); ?>
39
  <p style="margin-top: 1em;">
40
+ <?php echo $this->printPaymentInfo($this->getPaymentInfos()); ?>
41
  </p>
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>shopgate_module</name>
4
- <version>2.9.18</version>
5
  <stability>stable</stability>
6
  <license uri="http://wiki.shopgate.com/Magento/de">Shopgate Plugin</license>
7
  <channel>community</channel>
@@ -9,10 +9,10 @@
9
  <summary>Shopgate Plugin</summary>
10
  <description>Shopgate Plugin</description>
11
  <notes>Shopgate Modul</notes>
12
- <authors><author><name>Peter Liebig</name><user>Shopgate</user><email>p.liebig@me.com</email></author><author><name>Stephan Recknagel</name><user>Shopgate</user><email>mail@recknagel.io</email></author><author><name>Andr&#xE9; Kraus</name><user>Shopgate</user><email>andre.kraus83@googlemail.com</email></author></authors>
13
- <date>2015-08-04</date>
14
- <time>12:43:09</time>
15
- <contents><target name="mageetc"><dir name="modules"><file name="Shopgate_Framework.xml" hash="3fb114204bd038da711122083876f161"/></dir></target><target name="magecommunity"><dir name="Shopgate"><dir name="Framework"><dir name="Block"><dir name="Adminhtml"><dir name="OAuth"><dir name="Config"><file name="Connector.php" hash="890d04b08bf692c12b02f29abf813f83"/></dir><dir name="Connect"><dir name="Add"><file name="Form.php" hash="45685099b41a46919a9900d22c30b711"/></dir><file name="Info.php" hash="ee7bbc837bf3f298791b8496f2d6d565"/><file name="Overlay.php" hash="a6496896dccb5898b36e3e65585650f4"/></dir><file name="Connect.php" hash="cc7e43ba447b6338f6c50ccaa5fd073a"/><file name="Data.php" hash="1903e819d5d16abba4c37d7823909260"/><file name="Disconnect.php" hash="2545e56bca73577ba5f73fce0501624a"/><dir name="Manage"><file name="Grid.php" hash="78357b78fed0e8b3535a7e505c8f6425"/></dir><file name="Manage.php" hash="a99e12333f7c27771ca42a0764108639"/></dir></dir><file name="Info.php" hash="3dd73900370546289a6033942a0c0528"/><dir name="Payment"><file name="MobilePayment.php" hash="4c5805f4d09cb7f38f6e873b4cae33c1"/><file name="Shopgate.php" hash="67af406fa04da70461b3580b8adea89d"/></dir><dir name="Totals"><file name="AbstractPaymentFee.php" hash="5e36647f536d1c6daba33cd6e0a5e302"/><file name="CreditmemoPaymentFee.php" hash="4a287f54554d8d45772db386f54a45e7"/><file name="InvoicePaymentFee.php" hash="818164536fe249016af3046aef73f181"/><file name="OrderPaymentFee.php" hash="55c8f62c4da8014c99414ece9cd125c4"/></dir><file name="Version.php" hash="2f45712bb20635ac17d8bdee213819e5"/></dir><dir name="Helper"><dir name="Billsafe"><file name="Order.php" hash="474c2aa15f352224c11c8ab17e921c9d"/></dir><file name="Config.php" hash="738109de2b00a28594a57fb0a2e91952"/><file name="Coupon.php" hash="7a19ac697702d6334705f1d92274243b"/><file name="Customer.php" hash="9317086e730aedc99c7c187ebf898a7b"/><file name="Data.php" hash="0f8adfe6c80eefc85537c79b19731235"/><file name="Debug.php" hash="82c85038046fc9b2f994df18b7f202a6"/><file name="Export.php" hash="205dee2b07a96990efdc7ecca08cf075"/><dir name="Import"><file name="Order.php" hash="0ba172f97c206d14f6950a693164472a"/></dir><file name="Install.php" hash="57f42693c9a6ddb18b8a25a2a5da7cf8"/><dir name="Payment"><file name="Abstract.php" hash="484289d68e09f591f59d50b3905a895e"/><file name="Payone.php" hash="ddced5955ff55105d8b3c91e0fcb0778"/><file name="Wspp.php" hash="53ed3f72fc8d5bcde6a6a7ab78d6323f"/></dir><file name="Sales.php" hash="abbbdf5bd1223e2ebb62255cdadadc80"/></dir><dir name="Model"><dir name="Carrier"><file name="Fix.php" hash="42dc660fd45db6dc3721957665c6cf43"/></dir><dir name="Cataloginventory"><file name="Stock.php" hash="42ffccc3d644f8b04358a3e76bda32dd"/></dir><dir name="Compiler"><file name="Process.php" hash="740452b7bc234417788db1f1ee892ef5"/></dir><file name="Config.php" hash="30c638d50ff53e16bff9cfeb8285d170"/><file name="Customer.php" hash="97ed53ca3f69c7a24fb40cce11f58721"/><dir name="DreamRobot"><file name="Observer.php" hash="7b4e8922a46f5974b8edf359c632a9d3"/></dir><dir name="Export"><file name="Abstract.php" hash="9e86667845e8cebd8e0ccb8879b70b6d"/><dir name="Category"><file name="Csv.php" hash="72f4f58345d95f8f621783bedf2a092e"/><file name="Xml.php" hash="12ab046b9a000636ed4ed5eefb770af2"/></dir><file name="Category.php" hash="5a41141ecec85669674ec818c4661cdc"/><dir name="Customer"><file name="Orders.php" hash="98f11380fdc5d83bd8d04fbc8a00041d"/></dir><file name="Customer.php" hash="2711476c9538a22242d1511649ec77f1"/><dir name="Product"><file name="Csv.php" hash="579821eee1466a94b6aa1daf8fdc83c7"/><file name="Xml.php" hash="1d6bca8bf936aff0aae65fd6ab1c4d5b"/></dir><file name="Product.php" hash="d9c807df57af3f1cced2d9bb433338ec"/><dir name="Review"><file name="Csv.php" hash="5c72f802a2de256ca1ec8dab1b75b291"/><file name="Xml.php" hash="bc16f60d9ed20705422921955a5071fe"/></dir><file name="Review.php" hash="ad6f548035a30da642d2459354acbb40"/><file name="Settings.php" hash="604a2642188876402ae2df485392625a"/></dir><file name="Feed.php" hash="fb99cd7b2b3d94908848b722df666b67"/><dir name="Mobile"><file name="Redirect.php" hash="637ba202475a901806d3ba822d9cdc1e"/></dir><dir name="Mysql4"><dir name="Core"><file name="Core.php" hash="fc129d4d929f83e8389367b9c5d6d5e1"/></dir><dir name="Customer"><file name="Collection.php" hash="89d31997abc3c2145f74e02dd5456a7c"/></dir><file name="Customer.php" hash="d5f460b2d5bfa87b8368a8a6c6b51115"/><file name="Product.php" hash="6a99b3d0de44dfbd132ce9caca19034e"/><dir name="Shopgate"><dir name="Order"><file name="Collection.php" hash="e180ba816be47239828bea65cd5f8445"/></dir><file name="Order.php" hash="c297847e39ad01307dba4a69c13445f2"/></dir></dir><file name="Observer.php" hash="12012d97720b4726fc0036e89ae72fbf"/><dir name="Payment"><file name="Abstract.php" hash="6ccbbe837dfab2e688168bfb6736dbdd"/><file name="Amazon.php" hash="c90003246111cf066270015b41cb7ff9"/><file name="Authorize.php" hash="6f747fb258e59137cc5dadc179664246"/><file name="Billsafe.php" hash="1c97ec04356ae4ed25c1492a317eaaff"/><dir name="Cc"><file name="Abstract.php" hash="9da8b136b64e684d434b5c7d1749a0d6"/><file name="Authn.php" hash="cb7c64d874af752b5e42b84f730d3b70"/><file name="AuthnAbstract.php" hash="14f800ab7f1eef9cb156ede972f03cc3"/><dir name="Authncim"><file name="Gateway.php" hash="1f8df3fe0e50f4729bebfc1d4763b015"/><file name="Method.php" hash="aa6916548a71848ad7c83e4f053bc27e"/></dir><file name="Authncim.php" hash="1790d5366857344bb78ec76e1e1ccf53"/><file name="Usaepay.php" hash="e26b2317146174b6da8e6f189df84bfe"/></dir><file name="Cc.php" hash="7fe7850acbe549859442ec9facb9b550"/><file name="Express.php" hash="e90c6eb120a0aec969f63496b4fb1063"/><file name="Factory.php" hash="18e6a9df111781de310fc72b339f0292"/><file name="Generic.php" hash="666f06186d1bb96b94af287d221e27c5"/><file name="Interface.php" hash="151002297bcce208b85bd260c7a25b47"/><file name="MobilePayment.php" hash="59554c65e778831f6add450e0f846f42"/><dir name="Payone"><file name="Abstract.php" hash="3465493a3cfce507ab194522b71cf59e"/><file name="BankAbstract.php" hash="fa4ef2c918868001c5f1df97cb4bc400"/><file name="Cc.php" hash="11e68f50ea43bf73b31c53efea0cbc4d"/><file name="Dbt.php" hash="7f098887ba6f12669a18f62d7885de6d"/><file name="Gp.php" hash="7686149aedae93b0d5eef0b06fc08d7e"/><file name="Idl.php" hash="57d144744565ff644db917cab7ef689e"/><file name="Inv.php" hash="91d893ee5eacdc00ff8fbb3f1b750894"/><file name="Klv.php" hash="f82fb0cc874ea8f1121f282372e4e404"/><file name="Pp.php" hash="93004cedd66ab4bf31e5bb8747b4a606"/><file name="Prp.php" hash="76079d7e154c3a982b1d117793942c3a"/><file name="Sue.php" hash="31280f2c8abf21f0a582b656fb0d38ad"/></dir><dir name="Pp"><file name="Abstract.php" hash="dfbfd8dbca2a7adc22aa52fcff02ffd8"/><file name="Paypal.php" hash="567bd33b3fa420496e1395e68f1a68fc"/><file name="Wspp.php" hash="93638df868d42015f3d87ac93e176efd"/></dir><file name="Pp.php" hash="c521bbb32aed313c0170dd6e8361f934"/><file name="Router.php" hash="1df693718ebb4b71d2ae790678927194"/><file name="Shopgate.php" hash="f0d59e2a4369f7a22e47cf9c3bb9c44a"/><dir name="Simple"><file name="Billsafe.php" hash="939f38d1f3938be6f43c338a3204310f"/><file name="Mws.php" hash="ded03363e82fc438521687ed9881c6e7"/><file name="Paypal.php" hash="4d4311d0f61d33b189c431abae236a4f"/><dir name="Sue"><file name="Abstract.php" hash="d07d6b3a5702b458ed4e5f4574e3ced9"/><file name="Sue118.php" hash="4333d782de9814b6ab63fd9d4a140aa8"/><file name="Sue300.php" hash="0669135e0ea3b6d3280c37b6e17ac9a5"/></dir><file name="Sue.php" hash="6802dc052e2088957329689b003a16f8"/></dir><file name="Simple.php" hash="e4f0b3cd8282c2661cb19eabdb77d075"/><file name="Usaepay.php" hash="50e049e1cae29abbd7027cf842878540"/><file name="Wspp.php" hash="23b0420ff59dc0bfa7940bf0f07562fc"/></dir><dir name="Resource"><dir name="Core"><file name="Config.php" hash="0ee7969070ab0dddfdd3bb2cc404cd3c"/></dir><dir name="Customer"><file name="Collection.php" hash="2ddb7db1355100bc9e86f966f1d4612c"/></dir><file name="Customer.php" hash="69848842d4be07be4d66d700a7b6695b"/><file name="Product.php" hash="5c62ef4cfc3f0ebbbe5a9a46d1c25dfa"/><file name="Setup.php" hash="7b5cc0f99c857e9292638c1fbeb43969"/><dir name="Shopgate"><dir name="Connection"><file name="Collection.php" hash="f294d4239cee276b7e3c5e6e2109de66"/><dir name="Grid"><file name="Collection.php" hash="d499139d50dffbfe1b1e868b5aeeee0f"/></dir></dir><dir name="Order"><file name="Collection.php" hash="2c18a4ca248ca8719e7ead85f0c57619"/></dir><file name="Order.php" hash="1942eeb8268781c499f8cad384081b02"/></dir></dir><dir name="Sales"><dir name="Creditmemo"><dir name="Total"><file name="ShopgatePaymentFee.php" hash="614d1e96cd2c97e0fcd7db86ee3aad89"/></dir></dir><dir name="Invoice"><dir name="Total"><file name="ShopgatePaymentFee.php" hash="c4400832de32367067fd5396bcf7bfc8"/></dir></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="ShopgatePaymentFee.php" hash="28b097ab68b92268248b19a4ff20121b"/></dir></dir></dir></dir><dir name="Search"><dir name="Shopgate"><file name="Order.php" hash="94dcf366528641687b89ab0c9f973ef5"/></dir></dir><dir name="Shopgate"><dir name="Cart"><dir name="Validation"><dir name="Stock"><file name="Bundle.php" hash="7cc03239fbefe3a8e71755a178299944"/><file name="Simple.php" hash="9da9891d52c89e0772af5bcea7581ae8"/></dir><file name="Stock.php" hash="03d8139aa9840d707c8e4cb991bca20f"/></dir></dir><file name="Connection.php" hash="ff0da764d444103f5892ef21e23ba353"/><file name="Order.php" hash="89e0e425fc48282c1b46d3078b294be1"/><file name="Plugin.php" hash="183e8c21f66aac59a8d1ae523e8161bf"/><dir name="Shipping"><dir name="Mapper"><file name="Carrier.php" hash="ef57904070fdf7921e51e88c3991c029"/><dir name="Method"><file name="Abstract.php" hash="bb402c49f3da66f7bd4baf5b215f989e"/><file name="Interface.php" hash="1bab00e6e0356184c3f213acfce601da"/><file name="Shopgate.php" hash="af8e1ade067d1b9fb0e5b493ad814576"/><file name="Usps.php" hash="14969ce8762a7fa5e5e5d6bc64285f52"/></dir></dir><file name="Mapper.php" hash="b93ac160c4c176c77887a23593ab058c"/></dir></dir><dir name="System"><dir name="Config"><dir name="Source"><file name="Attribute.php" hash="8dfc3964b750aebac8db5f584559d5c3"/><dir name="Description"><file name="List.php" hash="c83f37019461ab7adc86a57400f63761"/></dir><file name="Description.php" hash="d0dcebc9d75fdb0bb80f3c3faba6397c"/><file name="Enabledisable.php" hash="7f189c26cd1c2c7f1cd6dc56379798b5"/><dir name="Item"><file name="Sort.php" hash="2dc75f9c1e8baaddbf895945acd2ff19"/></dir><dir name="Product"><file name="Image.php" hash="e9d0e7c5769446290094d2b67e5c468b"/><file name="Names.php" hash="98de8ee7ae9b3c504eb087f5e09d3afd"/><file name="Types.php" hash="007b54c2e095691380c21a5ab62846fc"/></dir><dir name="Redirect"><file name="Types.php" hash="c5d3c44ab1f5ba74224b41836b14afff"/></dir><file name="Server.php" hash="b569e24076ca68c4063729fb708b666a"/><file name="Store.php" hash="cb2998beb43ba8afeeaa5b64a5b5e946"/><dir name="Validation"><file name="Config.php" hash="77382cb829f4b3b50120d7e1359e0051"/></dir><dir name="Variation"><dir name="Export"><file name="Type.php" hash="bb19358c2c2fbee3cb9776f3540faa20"/></dir></dir><dir name="Weight"><file name="Units.php" hash="10af44d670bcfdb559f4196c7006e893"/></dir></dir></dir></dir></dir><file name="changelog.txt" hash="766a8c100b0a7ec9a93654da5d0bcaeb"/><dir name="controllers"><dir name="Adminhtml"><file name="ShopgateController.php" hash="cd2305edb0348a15f956d20d39433778"/></dir><file name="FrameworkController.php" hash="f901e83f2033e6a1604b389e217d4127"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d1f345ca5fc8b0619234f9c270fb84a7"/><file name="config.xml" hash="d2d87cb530732959f3c6f063a4105f4d"/><file name="system.xml" hash="eae99f8132b6316c0abdc0ec7440ddb6"/></dir><file name="licence.txt" hash="dec6ca25c420b36a2e400caf1541c923"/><dir name="sql"><dir name="shopgate_setup"><file name="mysql4-install-0.1.0.php" hash="069abba038757da43b2ca6c5a0c82aba"/><file name="mysql4-install-2.1.45.php" hash="eddddf157e55a87edc77361dde564463"/><file name="mysql4-install-2.2.0.php" hash="eddddf157e55a87edc77361dde564463"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="cc637fc1bc511e745f02a56d0b36e3be"/><file name="mysql4-upgrade-1.0.5-1.0.7.php" hash="1e800d9d235b817bf5be698288bc0129"/><file name="mysql4-upgrade-2.1.44-2.1.45.php" hash="134d0b665746c61d364f6fd93d83f46c"/><file name="mysql4-upgrade-2.1.49-2.1.50.php" hash="e0fd395bb9c25c0e544c455186cfe7c9"/><file name="mysql4-upgrade-2.4.28-2.4.29.php" hash="9c8c868ce90e42b56182b23b78d6fbe7"/><file name="mysql4-upgrade-2.4.29-2.4.30.php" hash="ca3ee1e2f337bcea26264a17f603548e"/><file name="mysql4-upgrade-2.7.5-2.8.0.php" hash="34393a58a0b4ec90b4e618d3ff4cc565"/><file name="mysql4-upgrade-2.9.15-2.9.16.php" hash="980e7cc83f912ef4f630ef8d1cb964d1"/><file name="mysql4-upgrade-2.9.4-2.9.5.php" hash="89a34b7b9ad2eec492055e52e7e75049"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Shopgate_Framework.csv" hash="bdf9f8ed6d5127744440bfd72bb09e06"/></dir><dir name="de_CH"><file name="Shopgate_Framework.csv" hash="bdf9f8ed6d5127744440bfd72bb09e06"/></dir><dir name="de_AT"><file name="Shopgate_Framework.csv" hash="bdf9f8ed6d5127744440bfd72bb09e06"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="shopgate"><file name="logo.png" hash="b7139047ecc90b15a5710ab0fe77fc81"/><file name="logo_big.png" hash="b98bfcf09766589506a1cca24ca47972"/><file name="logo_small.png" hash="7abf7f774c592eb582c2856e027af798"/><file name="oauth_connect.js" hash="8e5c77d9ad1354f826445f03c91008f4"/><file name="shopgate_admin.css" hash="0fbc07171267b9fb5dba7004a0858f66"/><file name="target.js" hash="80484a4dae515f708c97545d9959673a"/></dir></dir></dir></dir></target><target name="magelib"><dir name="Shopgate"><dir name="assets"><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><file name="js_header.html" hash="f9865eae13ed93fd41788aa27b0391ee"/><file name="link_tag.html" hash="4798d67e30ef4a76dd8435326421673d"/><file name="mobile_header.html" hash="17616650e160eaccd24e25729396c5a9"/></dir><file name="changelog.txt" hash="bbbfde8d30b9ec1bca95ecfd929a8ee8"/><dir name="classes"><file name="apis.php" hash="309c70f84eaeebc7a873cc1b2ccaf144"/><file name="configuration.php" hash="a4bd69f9e18dd2d0ebd704468e8a8ffc"/><file name="core.php" hash="864b6373749c596b5fde9b29233baa5e"/><file name="customers.php" hash="c6806e5296caa93709f300030f224188"/><file name="external_orders.php" hash="faa434d0a099f5d415d0aec2e3788f46"/><dir name="helper"><file name="DataStructure.php" hash="ece9e9f855756777f543d090f5ecc710"/><file name="Pricing.php" hash="fd4c74999abc3bfa05fd74994a2ce78f"/><file name="String.php" hash="10c9396b2975bf0bde86f171932c3074"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><file name="items.php" hash="93d57ff12a362b52b53daa8ef67949e9"/><dir name="models"><file name="Abstract.php" hash="a32633283eb403a55a166bbad70b3e2f"/><file name="AbstractExport.php" hash="f265f9e906208e1799994d117582be20"/><file name="XmlEmptyObject.php" hash="d6cfdae3bdd858d4f10fcebdb542f533"/><file name="XmlResultObject.php" hash="e104dedb2b8fa4579b7a93da2cb58dc0"/><dir name="catalog"><file name="Attribute.php" hash="28d8f3bc6c416661d1eaa77726ba7009"/><file name="AttributeGroup.php" hash="0270086ec8006ee8231c6b0baa8d6034"/><file name="Category.php" hash="fcba83c074f7559f44bc62154f7063e0"/><file name="CategoryPath.php" hash="475869aef74c567c8569ee9953210faa"/><file name="Identifier.php" hash="d9a3b16d1fcdec641ca2b0fd77fbd625"/><file name="Input.php" hash="5ac87958a42f38122fba6e472c2d643e"/><file name="Manufacturer.php" hash="cbfd53577f0f8dfccfb70dc801fc9e15"/><file name="Option.php" hash="7cb3f72a8c1fb4505cde70d1b3d72013"/><file name="Price.php" hash="63587038abdac8fbe74428da7c433e28"/><file name="Product.php" hash="13ab692ab92566f3ed1dcebe8ef612a5"/><file name="Property.php" hash="5967f0403a606a27ea4fec71a8402327"/><file name="Relation.php" hash="263cde539af500af911baec4e354079e"/><file name="Review.php" hash="72c94cb1f2a54bafffdb5672d87ecd4d"/><file name="Shipping.php" hash="e4cabbc096e8aed1ffa98a23abb47b2d"/><file name="Stock.php" hash="f157bc07057803b571018df2db0fefa6"/><file name="Tag.php" hash="39e7b845ab157d2f707707576e868d64"/><file name="TierPrice.php" hash="9dd757c9c3d193944a5727fbe5cf4704"/><file name="Validation.php" hash="0be71640c1df60ab809347194ec66457"/><file name="Visibility.php" hash="d60c6b8ec486da4afdc46a00d65ad172"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><dir name="media"><file name="Attachment.php" hash="c074ef3426c2506350cbf5ff0133c89d"/><file name="Image.php" hash="3640490564b897d069c9c4180fb23649"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir></dir><file name="orders.php" hash="2b4cccde29c5a4ee2395625540a16f88"/><file name="redirect.php" hash="568c682f66c4434188c604158029db57"/></dir><dir name="config"><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="index.php" hash="de19abc78063ea9a4112964c79946f1c"/><file name="shopgate.php" hash="f0482cc4027105bb5d423ddde01e7ac7"/><file name="shopgate_license.txt" hash="21fbb2f00b832416916b27c5e3f5d6d1"/><dir name="temp"><dir name="cache"><file name="index.php" hash="7573387748996e2dd9e02a237056f158"/></dir><file name="index.php" hash="7573387748996e2dd9e02a237056f158"/><dir name="logs"><file name="index.php" hash="7573387748996e2dd9e02a237056f158"/></dir></dir><dir name="vendors"><file name="2d_is.php" hash="087decaca87ee85d548d8caaa43f1212"/><file name="BSD_license.txt" hash="2df4dd93533ca2c19f6f2d601bc3e0d5"/><file name="JSON.php" hash="c8398aeb5c3c71aeb1813389d9a030af"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name=".htaccess" hash="34479bc8d9df775c38a980ecaf6f3f4b"/></dir></target><target name="mage"><dir name="app"><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="shopgate.xml" hash="26e50f9810daeb36b45f850272a86c91"/></dir><dir name="template"><dir name="shopgate"><file name="mobile_website.phtml" hash="229cbefd12ea77676f8af9c7159528ea"/><dir name="payment"><file name="mobile_payment.phtml" hash="1e18979028fb13e99af7c595c75a5d27"/><file name="shopgate.phtml" hash="1e18979028fb13e99af7c595c75a5d27"/></dir></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="shopgate.xml" hash="a38cee3696126b6bb43df33a0d3f5271"/></dir><dir name="template"><dir name="shopgate"><dir name="oauth"><dir name="config"><file name="connector.phtml" hash="478c309bdde7834bf20a48b65a4699fb"/></dir><dir name="connect"><file name="info.phtml" hash="4f75dc4311616081873a7d416b96c1c2"/><file name="overlay.phtml" hash="2a17d5b6ff8023568437b194f8a9d482"/></dir><file name="connect.phtml" hash="6956aa22eedf549c4565304b4e4a4ab9"/><file name="data.phtml" hash="09b4c5d83863f104db7a018510cdb315"/><file name="disconnect.phtml" hash="2858cebe9004c9fb5764f79faee46f87"/><file name="manage.phtml" hash="1f99255efbce4dbdc1ee781820d455b8"/></dir><dir name="payment"><file name="mobile_payment.phtml" hash="88e83035e22b1d69f631a8c935fcd2de"/><file name="shopgate.phtml" hash="5457030290f8aa08c2711a8bd27c3dee"/></dir></dir></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
- <dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
18
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>shopgate_module</name>
4
+ <version>2.9.19</version>
5
  <stability>stable</stability>
6
  <license uri="http://wiki.shopgate.com/Magento/de">Shopgate Plugin</license>
7
  <channel>community</channel>
9
  <summary>Shopgate Plugin</summary>
10
  <description>Shopgate Plugin</description>
11
  <notes>Shopgate Modul</notes>
12
+ <authors><author><name>Peter Liebig</name><user>auto-converted</user><email>p.liebig@me.com</email></author><author><name>Stephan Recknagel</name><user>auto-converted</user><email>mail@recknagel.io</email></author><author><name>Andr&#xE9; Kraus</name><user>auto-converted</user><email>andre.kraus83@googlemail.com</email></author></authors>
13
+ <date>2015-08-20</date>
14
+ <time>07:42:53</time>
15
+ <contents><target name="mageetc"><dir name="modules"><file name="Shopgate_Framework.xml" hash="3fb114204bd038da711122083876f161"/></dir></target><target name="magecommunity"><dir name="Shopgate"><dir name="Framework"><dir name="Block"><dir name="Adminhtml"><dir name="OAuth"><dir name="Config"><file name="Connector.php" hash="890d04b08bf692c12b02f29abf813f83"/></dir><dir name="Connect"><dir name="Add"><file name="Form.php" hash="45685099b41a46919a9900d22c30b711"/></dir><file name="Info.php" hash="ee7bbc837bf3f298791b8496f2d6d565"/><file name="Overlay.php" hash="a6496896dccb5898b36e3e65585650f4"/></dir><dir name="Manage"><file name="Grid.php" hash="78357b78fed0e8b3535a7e505c8f6425"/></dir><file name="Connect.php" hash="cc7e43ba447b6338f6c50ccaa5fd073a"/><file name="Data.php" hash="1903e819d5d16abba4c37d7823909260"/><file name="Disconnect.php" hash="2545e56bca73577ba5f73fce0501624a"/><file name="Manage.php" hash="a99e12333f7c27771ca42a0764108639"/></dir></dir><dir name="Payment"><file name="MobilePayment.php" hash="7de8af7ec46e107c46a73efaf2a02034"/><file name="Shopgate.php" hash="67af406fa04da70461b3580b8adea89d"/></dir><dir name="Totals"><file name="AbstractPaymentFee.php" hash="5e36647f536d1c6daba33cd6e0a5e302"/><file name="CreditmemoPaymentFee.php" hash="4a287f54554d8d45772db386f54a45e7"/><file name="InvoicePaymentFee.php" hash="818164536fe249016af3046aef73f181"/><file name="OrderPaymentFee.php" hash="55c8f62c4da8014c99414ece9cd125c4"/></dir><file name="Info.php" hash="3dd73900370546289a6033942a0c0528"/><file name="Version.php" hash="2f45712bb20635ac17d8bdee213819e5"/></dir><dir name="Helper"><dir name="Billsafe"><file name="Order.php" hash="474c2aa15f352224c11c8ab17e921c9d"/></dir><dir name="Import"><file name="Order.php" hash="bf2e1bbee6fb46ec22e5c6a1ed0a0404"/></dir><dir name="Payment"><file name="Abstract.php" hash="484289d68e09f591f59d50b3905a895e"/><file name="Payone.php" hash="ddced5955ff55105d8b3c91e0fcb0778"/><file name="Wspp.php" hash="53ed3f72fc8d5bcde6a6a7ab78d6323f"/></dir><file name="Config.php" hash="2c736f067f5d69855e1523504a7afe36"/><file name="Coupon.php" hash="519697b13040ddfbc8f460b6034c8779"/><file name="Customer.php" hash="9317086e730aedc99c7c187ebf898a7b"/><file name="Data.php" hash="0f8adfe6c80eefc85537c79b19731235"/><file name="Debug.php" hash="82c85038046fc9b2f994df18b7f202a6"/><file name="Export.php" hash="205dee2b07a96990efdc7ecca08cf075"/><file name="Install.php" hash="57f42693c9a6ddb18b8a25a2a5da7cf8"/><file name="Sales.php" hash="abbbdf5bd1223e2ebb62255cdadadc80"/></dir><dir name="Model"><dir name="Carrier"><file name="Fix.php" hash="42dc660fd45db6dc3721957665c6cf43"/></dir><dir name="Cataloginventory"><file name="Stock.php" hash="42ffccc3d644f8b04358a3e76bda32dd"/></dir><dir name="Compiler"><file name="Process.php" hash="740452b7bc234417788db1f1ee892ef5"/></dir><dir name="DreamRobot"><file name="Observer.php" hash="7b4e8922a46f5974b8edf359c632a9d3"/></dir><dir name="Export"><dir name="Category"><file name="Csv.php" hash="72f4f58345d95f8f621783bedf2a092e"/><file name="Xml.php" hash="12ab046b9a000636ed4ed5eefb770af2"/></dir><dir name="Customer"><file name="Orders.php" hash="98f11380fdc5d83bd8d04fbc8a00041d"/></dir><dir name="Product"><file name="Csv.php" hash="579821eee1466a94b6aa1daf8fdc83c7"/><file name="Xml.php" hash="3c723154bfaf0114b537995b945b59a5"/></dir><dir name="Review"><file name="Csv.php" hash="5c72f802a2de256ca1ec8dab1b75b291"/><file name="Xml.php" hash="bc16f60d9ed20705422921955a5071fe"/></dir><file name="Abstract.php" hash="9e86667845e8cebd8e0ccb8879b70b6d"/><file name="Category.php" hash="5a41141ecec85669674ec818c4661cdc"/><file name="Customer.php" hash="2711476c9538a22242d1511649ec77f1"/><file name="Product.php" hash="d9c807df57af3f1cced2d9bb433338ec"/><file name="Review.php" hash="ad6f548035a30da642d2459354acbb40"/><file name="Settings.php" hash="604a2642188876402ae2df485392625a"/></dir><dir name="Mobile"><file name="Redirect.php" hash="637ba202475a901806d3ba822d9cdc1e"/></dir><dir name="Mysql4"><dir name="Core"><file name="Core.php" hash="fc129d4d929f83e8389367b9c5d6d5e1"/></dir><dir name="Customer"><file name="Collection.php" hash="89d31997abc3c2145f74e02dd5456a7c"/></dir><dir name="Shopgate"><dir name="Order"><file name="Collection.php" hash="e180ba816be47239828bea65cd5f8445"/></dir><file name="Order.php" hash="c297847e39ad01307dba4a69c13445f2"/></dir><file name="Customer.php" hash="d5f460b2d5bfa87b8368a8a6c6b51115"/><file name="Product.php" hash="6a99b3d0de44dfbd132ce9caca19034e"/></dir><dir name="Payment"><dir name="Cc"><dir name="Authncim"><file name="Gateway.php" hash="1f8df3fe0e50f4729bebfc1d4763b015"/><file name="Method.php" hash="aa6916548a71848ad7c83e4f053bc27e"/></dir><file name="Abstract.php" hash="9da8b136b64e684d434b5c7d1749a0d6"/><file name="Authn.php" hash="cb7c64d874af752b5e42b84f730d3b70"/><file name="AuthnAbstract.php" hash="14f800ab7f1eef9cb156ede972f03cc3"/><file name="Authncim.php" hash="1790d5366857344bb78ec76e1e1ccf53"/><file name="Usaepay.php" hash="e26b2317146174b6da8e6f189df84bfe"/></dir><dir name="Payone"><file name="Abstract.php" hash="3465493a3cfce507ab194522b71cf59e"/><file name="BankAbstract.php" hash="fa4ef2c918868001c5f1df97cb4bc400"/><file name="Cc.php" hash="11e68f50ea43bf73b31c53efea0cbc4d"/><file name="Dbt.php" hash="7f098887ba6f12669a18f62d7885de6d"/><file name="Gp.php" hash="7686149aedae93b0d5eef0b06fc08d7e"/><file name="Idl.php" hash="57d144744565ff644db917cab7ef689e"/><file name="Inv.php" hash="91d893ee5eacdc00ff8fbb3f1b750894"/><file name="Klv.php" hash="f82fb0cc874ea8f1121f282372e4e404"/><file name="Pp.php" hash="93004cedd66ab4bf31e5bb8747b4a606"/><file name="Prp.php" hash="76079d7e154c3a982b1d117793942c3a"/><file name="Sue.php" hash="31280f2c8abf21f0a582b656fb0d38ad"/></dir><dir name="Pp"><file name="Abstract.php" hash="392a41d83b10150d7a39043c1bf923af"/><file name="Wspp.php" hash="ffef93e6dd51c4edefe3fbd228d1d33f"/></dir><dir name="Simple"><dir name="Cod"><file name="Abstract.php" hash="7bcb77e2906200f8a7576a24d782d541"/><file name="Msp.php" hash="da63e630e339f73b1047f9be2fc13a80"/><file name="Native.php" hash="a18abef66d98a08e988bafa1564dfaa2"/><file name="Phoenix107.php" hash="958990a7ec99a4c102b335e68db4f563"/><file name="Phoenix108.php" hash="912cb903da51a2056f03d75c566dbc7b"/></dir><dir name="Paypal"><file name="Express.php" hash="41f515971e019e5f29db0ef6832733c5"/><file name="Standard.php" hash="5281ddc90f8f560b6cffa2e97fe08304"/></dir><dir name="Prepay"><file name="Abstract.php" hash="89767868690e40bc3d96f8bee4484880"/><file name="Checkmo.php" hash="781dd32522f7bc97c62313cb76429633"/><file name="Native.php" hash="48542e3e9ad2bafb504a200a6529eccc"/><file name="Phoenix.php" hash="7118e404d6f1755cdab35dbc2c8f058d"/></dir><dir name="Sue"><file name="Abstract.php" hash="d07d6b3a5702b458ed4e5f4574e3ced9"/><file name="Sue118.php" hash="759f4a7e103f9f9f4457aa1d0694c26d"/><file name="Sue300.php" hash="c804244222e5fe67ead8916c5c1ffef1"/></dir><file name="Billsafe.php" hash="939f38d1f3938be6f43c338a3204310f"/><file name="Cod.php" hash="0688749cd9110544d01e5c1130be3005"/><file name="Invoice.php" hash="a86d8500a0dee3056e56b0ccfb1fae3d"/><file name="Mws.php" hash="66b68310d396e83423aefbd6e266c7ff"/><file name="Paypal.php" hash="4f0ea53a37ebced5be389d85f800a960"/><file name="Prepay.php" hash="eb79f9f8469652e91b11fd5d714db84f"/><file name="Shopgate.php" hash="f21b1608add7e193bed0ccf0004de3a8"/><file name="Sue.php" hash="6802dc052e2088957329689b003a16f8"/></dir><file name="Abstract.php" hash="b824e58f30ffce15e74a6e8e331ab46f"/><file name="Amazon.php" hash="c90003246111cf066270015b41cb7ff9"/><file name="Authorize.php" hash="6f747fb258e59137cc5dadc179664246"/><file name="Billsafe.php" hash="1c97ec04356ae4ed25c1492a317eaaff"/><file name="Cc.php" hash="7fe7850acbe549859442ec9facb9b550"/><file name="Express.php" hash="e90c6eb120a0aec969f63496b4fb1063"/><file name="Factory.php" hash="18e6a9df111781de310fc72b339f0292"/><file name="Generic.php" hash="666f06186d1bb96b94af287d221e27c5"/><file name="Interface.php" hash="151002297bcce208b85bd260c7a25b47"/><file name="MobilePayment.php" hash="59554c65e778831f6add450e0f846f42"/><file name="Pp.php" hash="c521bbb32aed313c0170dd6e8361f934"/><file name="Router.php" hash="1df693718ebb4b71d2ae790678927194"/><file name="Shopgate.php" hash="f0d59e2a4369f7a22e47cf9c3bb9c44a"/><file name="Simple.php" hash="e4f0b3cd8282c2661cb19eabdb77d075"/><file name="Usaepay.php" hash="50e049e1cae29abbd7027cf842878540"/><file name="Wspp.php" hash="23b0420ff59dc0bfa7940bf0f07562fc"/></dir><dir name="Resource"><dir name="Core"><file name="Config.php" hash="0ee7969070ab0dddfdd3bb2cc404cd3c"/></dir><dir name="Customer"><file name="Collection.php" hash="2ddb7db1355100bc9e86f966f1d4612c"/></dir><dir name="Shopgate"><dir name="Connection"><dir name="Grid"><file name="Collection.php" hash="d499139d50dffbfe1b1e868b5aeeee0f"/></dir><file name="Collection.php" hash="f294d4239cee276b7e3c5e6e2109de66"/></dir><dir name="Order"><file name="Collection.php" hash="2c18a4ca248ca8719e7ead85f0c57619"/></dir><file name="Order.php" hash="1942eeb8268781c499f8cad384081b02"/></dir><file name="Customer.php" hash="69848842d4be07be4d66d700a7b6695b"/><file name="Product.php" hash="5c62ef4cfc3f0ebbbe5a9a46d1c25dfa"/><file name="Setup.php" hash="7b5cc0f99c857e9292638c1fbeb43969"/></dir><dir name="Sales"><dir name="Creditmemo"><dir name="Total"><file name="ShopgatePaymentFee.php" hash="614d1e96cd2c97e0fcd7db86ee3aad89"/></dir></dir><dir name="Invoice"><dir name="Total"><file name="ShopgatePaymentFee.php" hash="c4400832de32367067fd5396bcf7bfc8"/></dir></dir><dir name="Quote"><dir name="Address"><dir name="Total"><file name="ShopgatePaymentFee.php" hash="28b097ab68b92268248b19a4ff20121b"/></dir></dir></dir></dir><dir name="Search"><dir name="Shopgate"><file name="Order.php" hash="94dcf366528641687b89ab0c9f973ef5"/></dir></dir><dir name="Shopgate"><dir name="Cart"><dir name="Validation"><dir name="Stock"><file name="Bundle.php" hash="7cc03239fbefe3a8e71755a178299944"/><file name="Simple.php" hash="9da9891d52c89e0772af5bcea7581ae8"/></dir><file name="Stock.php" hash="03d8139aa9840d707c8e4cb991bca20f"/></dir></dir><dir name="Shipping"><dir name="Mapper"><dir name="Method"><file name="Abstract.php" hash="bb402c49f3da66f7bd4baf5b215f989e"/><file name="Interface.php" hash="1bab00e6e0356184c3f213acfce601da"/><file name="Shopgate.php" hash="af8e1ade067d1b9fb0e5b493ad814576"/><file name="Usps.php" hash="14969ce8762a7fa5e5e5d6bc64285f52"/></dir><file name="Carrier.php" hash="ef57904070fdf7921e51e88c3991c029"/></dir><file name="Mapper.php" hash="b93ac160c4c176c77887a23593ab058c"/></dir><file name="Connection.php" hash="ff0da764d444103f5892ef21e23ba353"/><file name="Order.php" hash="89e0e425fc48282c1b46d3078b294be1"/><file name="Plugin.php" hash="d695aab78c099bc91237490abec74ad2"/></dir><dir name="System"><dir name="Config"><dir name="Source"><dir name="Description"><file name="List.php" hash="c83f37019461ab7adc86a57400f63761"/></dir><dir name="Item"><file name="Sort.php" hash="2dc75f9c1e8baaddbf895945acd2ff19"/></dir><dir name="Product"><file name="Image.php" hash="e9d0e7c5769446290094d2b67e5c468b"/><file name="Names.php" hash="98de8ee7ae9b3c504eb087f5e09d3afd"/><file name="Types.php" hash="007b54c2e095691380c21a5ab62846fc"/></dir><dir name="Redirect"><file name="Types.php" hash="c5d3c44ab1f5ba74224b41836b14afff"/></dir><dir name="Validation"><file name="Config.php" hash="77382cb829f4b3b50120d7e1359e0051"/></dir><dir name="Variation"><dir name="Export"><file name="Type.php" hash="bb19358c2c2fbee3cb9776f3540faa20"/></dir></dir><dir name="Weight"><file name="Units.php" hash="10af44d670bcfdb559f4196c7006e893"/></dir><file name="Attribute.php" hash="8dfc3964b750aebac8db5f584559d5c3"/><file name="Description.php" hash="d0dcebc9d75fdb0bb80f3c3faba6397c"/><file name="Enabledisable.php" hash="7f189c26cd1c2c7f1cd6dc56379798b5"/><file name="Server.php" hash="b569e24076ca68c4063729fb708b666a"/><file name="Store.php" hash="cb2998beb43ba8afeeaa5b64a5b5e946"/></dir></dir></dir><file name="Config.php" hash="30c638d50ff53e16bff9cfeb8285d170"/><file name="Customer.php" hash="97ed53ca3f69c7a24fb40cce11f58721"/><file name="Feed.php" hash="fb99cd7b2b3d94908848b722df666b67"/><file name="Observer.php" hash="da10a5dddba99720bea687ec4fa94c57"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ShopgateController.php" hash="cd2305edb0348a15f956d20d39433778"/></dir><file name="FrameworkController.php" hash="f901e83f2033e6a1604b389e217d4127"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d1f345ca5fc8b0619234f9c270fb84a7"/><file name="config.xml" hash="979939cb5081c2ab218cbe6129723a18"/><file name="system.xml" hash="eae99f8132b6316c0abdc0ec7440ddb6"/></dir><dir name="sql"><dir name="shopgate_setup"><file name="mysql4-install-0.1.0.php" hash="069abba038757da43b2ca6c5a0c82aba"/><file name="mysql4-install-2.1.45.php" hash="eddddf157e55a87edc77361dde564463"/><file name="mysql4-install-2.2.0.php" hash="eddddf157e55a87edc77361dde564463"/><file name="mysql4-upgrade-0.1.0-0.1.1.php" hash="cc637fc1bc511e745f02a56d0b36e3be"/><file name="mysql4-upgrade-1.0.5-1.0.7.php" hash="1e800d9d235b817bf5be698288bc0129"/><file name="mysql4-upgrade-2.1.44-2.1.45.php" hash="134d0b665746c61d364f6fd93d83f46c"/><file name="mysql4-upgrade-2.1.49-2.1.50.php" hash="e0fd395bb9c25c0e544c455186cfe7c9"/><file name="mysql4-upgrade-2.4.28-2.4.29.php" hash="9c8c868ce90e42b56182b23b78d6fbe7"/><file name="mysql4-upgrade-2.4.29-2.4.30.php" hash="ca3ee1e2f337bcea26264a17f603548e"/><file name="mysql4-upgrade-2.7.5-2.8.0.php" hash="34393a58a0b4ec90b4e618d3ff4cc565"/><file name="mysql4-upgrade-2.9.15-2.9.16.php" hash="980e7cc83f912ef4f630ef8d1cb964d1"/><file name="mysql4-upgrade-2.9.4-2.9.5.php" hash="89a34b7b9ad2eec492055e52e7e75049"/></dir></dir><file name="changelog.txt" hash="fda79661baf395560a0179ee9e906605"/><file name="licence.txt" hash="dec6ca25c420b36a2e400caf1541c923"/></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Shopgate_Framework.csv" hash="bdf9f8ed6d5127744440bfd72bb09e06"/></dir><dir name="de_CH"><file name="Shopgate_Framework.csv" hash="bdf9f8ed6d5127744440bfd72bb09e06"/></dir><dir name="de_AT"><file name="Shopgate_Framework.csv" hash="bdf9f8ed6d5127744440bfd72bb09e06"/></dir></target><target name="mageskin"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="shopgate"><file name="logo.png" hash="b7139047ecc90b15a5710ab0fe77fc81"/><file name="logo_big.png" hash="b98bfcf09766589506a1cca24ca47972"/><file name="logo_small.png" hash="7abf7f774c592eb582c2856e027af798"/><file name="oauth_connect.js" hash="8e5c77d9ad1354f826445f03c91008f4"/><file name="shopgate_admin.css" hash="0fbc07171267b9fb5dba7004a0858f66"/><file name="target.js" hash="80484a4dae515f708c97545d9959673a"/></dir></dir></dir></dir></target><target name="magelib"><dir name="Shopgate"><dir name="assets"><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><file name="js_header.html" hash="f9865eae13ed93fd41788aa27b0391ee"/><file name="link_tag.html" hash="4798d67e30ef4a76dd8435326421673d"/><file name="mobile_header.html" hash="17616650e160eaccd24e25729396c5a9"/></dir><dir name="classes"><dir name="helper"><file name="DataStructure.php" hash="ece9e9f855756777f543d090f5ecc710"/><file name="Pricing.php" hash="fd4c74999abc3bfa05fd74994a2ce78f"/><file name="String.php" hash="10c9396b2975bf0bde86f171932c3074"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><dir name="models"><dir name="catalog"><file name="Attribute.php" hash="28d8f3bc6c416661d1eaa77726ba7009"/><file name="AttributeGroup.php" hash="0270086ec8006ee8231c6b0baa8d6034"/><file name="Category.php" hash="fcba83c074f7559f44bc62154f7063e0"/><file name="CategoryPath.php" hash="475869aef74c567c8569ee9953210faa"/><file name="Identifier.php" hash="d9a3b16d1fcdec641ca2b0fd77fbd625"/><file name="Input.php" hash="5ac87958a42f38122fba6e472c2d643e"/><file name="Manufacturer.php" hash="cbfd53577f0f8dfccfb70dc801fc9e15"/><file name="Option.php" hash="7cb3f72a8c1fb4505cde70d1b3d72013"/><file name="Price.php" hash="63587038abdac8fbe74428da7c433e28"/><file name="Product.php" hash="13ab692ab92566f3ed1dcebe8ef612a5"/><file name="Property.php" hash="5967f0403a606a27ea4fec71a8402327"/><file name="Relation.php" hash="263cde539af500af911baec4e354079e"/><file name="Review.php" hash="72c94cb1f2a54bafffdb5672d87ecd4d"/><file name="Shipping.php" hash="e4cabbc096e8aed1ffa98a23abb47b2d"/><file name="Stock.php" hash="f157bc07057803b571018df2db0fefa6"/><file name="Tag.php" hash="39e7b845ab157d2f707707576e868d64"/><file name="TierPrice.php" hash="9dd757c9c3d193944a5727fbe5cf4704"/><file name="Validation.php" hash="0be71640c1df60ab809347194ec66457"/><file name="Visibility.php" hash="d60c6b8ec486da4afdc46a00d65ad172"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><dir name="media"><file name="Attachment.php" hash="c074ef3426c2506350cbf5ff0133c89d"/><file name="Image.php" hash="3640490564b897d069c9c4180fb23649"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="Abstract.php" hash="a32633283eb403a55a166bbad70b3e2f"/><file name="AbstractExport.php" hash="f265f9e906208e1799994d117582be20"/><file name="XmlEmptyObject.php" hash="d6cfdae3bdd858d4f10fcebdb542f533"/><file name="XmlResultObject.php" hash="e104dedb2b8fa4579b7a93da2cb58dc0"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="apis.php" hash="309c70f84eaeebc7a873cc1b2ccaf144"/><file name="configuration.php" hash="a4bd69f9e18dd2d0ebd704468e8a8ffc"/><file name="core.php" hash="864b6373749c596b5fde9b29233baa5e"/><file name="customers.php" hash="c6806e5296caa93709f300030f224188"/><file name="external_orders.php" hash="faa434d0a099f5d415d0aec2e3788f46"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><file name="items.php" hash="93d57ff12a362b52b53daa8ef67949e9"/><file name="orders.php" hash="2b4cccde29c5a4ee2395625540a16f88"/><file name="redirect.php" hash="568c682f66c4434188c604158029db57"/></dir><dir name="config"><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><dir name="temp"><dir name="cache"><file name="index.php" hash="7573387748996e2dd9e02a237056f158"/></dir><dir name="logs"><file name="index.php" hash="7573387748996e2dd9e02a237056f158"/></dir><file name="index.php" hash="7573387748996e2dd9e02a237056f158"/></dir><dir name="vendors"><file name="2d_is.php" hash="087decaca87ee85d548d8caaa43f1212"/><file name="BSD_license.txt" hash="2df4dd93533ca2c19f6f2d601bc3e0d5"/><file name="JSON.php" hash="c8398aeb5c3c71aeb1813389d9a030af"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="changelog.txt" hash="bbbfde8d30b9ec1bca95ecfd929a8ee8"/><file name="index.php" hash="de19abc78063ea9a4112964c79946f1c"/><file name="shopgate.php" hash="f0482cc4027105bb5d423ddde01e7ac7"/><file name="shopgate_license.txt" hash="21fbb2f00b832416916b27c5e3f5d6d1"/><file name=".htaccess" hash="34479bc8d9df775c38a980ecaf6f3f4b"/></dir></target><target name="mage"><dir name="app"><dir name="design"><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="shopgate.xml" hash="26e50f9810daeb36b45f850272a86c91"/></dir><dir name="template"><dir name="shopgate"><dir name="payment"><file name="mobile_payment.phtml" hash="1e18979028fb13e99af7c595c75a5d27"/><file name="shopgate.phtml" hash="1e18979028fb13e99af7c595c75a5d27"/></dir><file name="mobile_website.phtml" hash="229cbefd12ea77676f8af9c7159528ea"/></dir></dir></dir></dir></dir><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="shopgate.xml" hash="a38cee3696126b6bb43df33a0d3f5271"/></dir><dir name="template"><dir name="shopgate"><dir name="oauth"><dir name="config"><file name="connector.phtml" hash="478c309bdde7834bf20a48b65a4699fb"/></dir><dir name="connect"><file name="info.phtml" hash="4f75dc4311616081873a7d416b96c1c2"/><file name="overlay.phtml" hash="2a17d5b6ff8023568437b194f8a9d482"/></dir><file name="connect.phtml" hash="6956aa22eedf549c4565304b4e4a4ab9"/><file name="data.phtml" hash="09b4c5d83863f104db7a018510cdb315"/><file name="disconnect.phtml" hash="2858cebe9004c9fb5764f79faee46f87"/><file name="manage.phtml" hash="1f99255efbce4dbdc1ee781820d455b8"/></dir><dir name="payment"><file name="mobile_payment.phtml" hash="2892e0dd200db6c0ffa5fa83f87d838c"/><file name="shopgate.phtml" hash="5457030290f8aa08c2711a8bd27c3dee"/></dir></dir></dir></dir></dir></dir></dir></dir></target></contents>
16
  <compatible/>
17
+ <dependencies/>
18
  </package>