Version Notes
Shopgate Modul
Download this release
Release Info
Developer | Stephan Recknagel |
Extension | shopgate_module |
Version | 2.9.32 |
Comparing to | |
See all releases |
Code changes from version 2.9.31 to 2.9.32
- app/code/community/Shopgate/CartRules/Model/Observer.php +38 -0
- app/code/community/Shopgate/CartRules/Model/Shopgate/Plugin.php +216 -0
- app/code/community/Shopgate/CartRules/etc/config.xml +18 -0
- app/code/community/Shopgate/Framework/Block/Payment/MobilePayment.php +2 -0
- app/code/community/Shopgate/Framework/Helper/Data.php +25 -19
- app/code/community/Shopgate/Framework/Helper/Sales.php +11 -2
- app/code/community/Shopgate/Framework/Model/Observer.php +141 -126
- app/code/community/Shopgate/Framework/Model/Payment/Payone/Abstract.php +4 -4
- app/code/community/Shopgate/Framework/Model/Payment/Payone/BankAbstract.php +1 -1
- app/code/community/Shopgate/Framework/Model/Payment/Payone/Cc.php +1 -1
- app/code/community/Shopgate/Framework/Model/Payment/Payone/Prp.php +1 -1
- app/code/community/Shopgate/Framework/Model/Shopgate/Cart/Validation/Stock/Bundle.php +4 -0
- app/code/community/Shopgate/Framework/Model/Shopgate/Cart/Validation/Stock/Simple.php +4 -0
- app/code/community/Shopgate/Framework/changelog.txt +9 -0
- app/code/community/Shopgate/Framework/controllers/Adminhtml/ShopgateController.php +16 -2
- app/code/community/Shopgate/Framework/etc/adminhtml.xml +63 -69
- app/code/community/Shopgate/Framework/etc/config.xml +1 -1
- app/code/community/Shopgate/MatrixShipCustom/Helper/Framework/Sales.php +42 -0
- app/code/community/Shopgate/MatrixShipCustom/etc/config.xml +20 -0
- package.xml +4 -4
app/code/community/Shopgate/CartRules/Model/Observer.php
ADDED
@@ -0,0 +1,38 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Shopgate GmbH
|
5 |
+
*
|
6 |
+
* URHEBERRECHTSHINWEIS
|
7 |
+
*
|
8 |
+
* Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
|
9 |
+
* zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
|
10 |
+
* Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
|
11 |
+
* öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
|
12 |
+
* schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
|
13 |
+
*
|
14 |
+
* COPYRIGHT NOTICE
|
15 |
+
*
|
16 |
+
* This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
|
17 |
+
* for the purpose of facilitating communication between the IT system of the customer and the IT system
|
18 |
+
* of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
|
19 |
+
* transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
|
20 |
+
* of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
|
21 |
+
*
|
22 |
+
* @author Shopgate GmbH <interfaces@shopgate.com>
|
23 |
+
*/
|
24 |
+
class Shopgate_CartRules_Model_Observer extends Shopgate_Framework_Model_Observer
|
25 |
+
{
|
26 |
+
/**
|
27 |
+
* This observer blocks any rule that is not a coupon,
|
28 |
+
* so it's made to be empty to stop that restriction.
|
29 |
+
*
|
30 |
+
* @see https://shopgate.atlassian.net/browse/MAGENTO-1163
|
31 |
+
* @param Varien_Event_Observer $event
|
32 |
+
* @return $this
|
33 |
+
*/
|
34 |
+
public function beforeSalesrulesLoaded($event)
|
35 |
+
{
|
36 |
+
return $this;
|
37 |
+
}
|
38 |
+
}
|
app/code/community/Shopgate/CartRules/Model/Shopgate/Plugin.php
ADDED
@@ -0,0 +1,216 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Shopgate GmbH
|
5 |
+
*
|
6 |
+
* URHEBERRECHTSHINWEIS
|
7 |
+
*
|
8 |
+
* Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
|
9 |
+
* zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
|
10 |
+
* Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
|
11 |
+
* öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
|
12 |
+
* schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
|
13 |
+
*
|
14 |
+
* COPYRIGHT NOTICE
|
15 |
+
*
|
16 |
+
* This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
|
17 |
+
* for the purpose of facilitating communication between the IT system of the customer and the IT system
|
18 |
+
* of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
|
19 |
+
* transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
|
20 |
+
* of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
|
21 |
+
*
|
22 |
+
* @author Shopgate GmbH <interfaces@shopgate.com>
|
23 |
+
*/
|
24 |
+
class Shopgate_CartRules_Model_Shopgate_Plugin extends Shopgate_Framework_Model_Shopgate_Plugin
|
25 |
+
{
|
26 |
+
const CART_RULE_COUPON_CODE = '1';
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Rewrite adaption for cart price rules to work
|
30 |
+
* without a coupon code.
|
31 |
+
*
|
32 |
+
* @see https://shopgate.atlassian.net/browse/MAGENTO-1163
|
33 |
+
* @param $mageCart
|
34 |
+
* @param ShopgateCart $cart
|
35 |
+
* @return array|null
|
36 |
+
*/
|
37 |
+
public function checkCoupons($mageCart, ShopgateCart $cart)
|
38 |
+
{
|
39 |
+
/* @var $mageQuote Mage_Sales_Model_Quote */
|
40 |
+
/* @var $mageCart Mage_Checkout_Model_Cart */
|
41 |
+
/* @var $mageCoupon Mage_SalesRule_Model_Coupon */
|
42 |
+
/* @var $mageRule Mage_SalesRule_Model_Rule */
|
43 |
+
$mageQuote = $mageCart->getQuote();
|
44 |
+
$mageQuote->setTotalsCollectedFlag(false)->collectTotals();
|
45 |
+
|
46 |
+
$externalCoupons = array();
|
47 |
+
$validCouponsInCart = 0;
|
48 |
+
$returnEmptyCoupon = false;
|
49 |
+
$appliedRules = $mageQuote->getAppliedRuleIds();
|
50 |
+
$totals = $mageQuote->getTotals();
|
51 |
+
$discountAmount = empty($totals['discount']) ? 0 : $totals['discount']->getValue();
|
52 |
+
|
53 |
+
if (!$cart->getExternalCoupons()
|
54 |
+
&& empty($discountAmount)
|
55 |
+
) {
|
56 |
+
return null;
|
57 |
+
}
|
58 |
+
|
59 |
+
foreach ($cart->getExternalCoupons() as $coupon) {
|
60 |
+
if ($coupon->getCode() === self::CART_RULE_COUPON_CODE) {
|
61 |
+
$returnEmptyCoupon = true;
|
62 |
+
continue;
|
63 |
+
}
|
64 |
+
/** @var ShopgateExternalCoupon $coupon */
|
65 |
+
$externalCoupon = new ShopgateExternalCoupon();
|
66 |
+
$externalCoupon->setIsValid(true);
|
67 |
+
$externalCoupon->setCode($coupon->getCode());
|
68 |
+
|
69 |
+
try {
|
70 |
+
$mageQuote->setCouponCode($coupon->getCode());
|
71 |
+
$mageQuote->setTotalsCollectedFlag(false)->collectTotals();
|
72 |
+
$totals = $mageQuote->getTotals();
|
73 |
+
} catch (Exception $e) {
|
74 |
+
$externalCoupon->setIsValid(false);
|
75 |
+
$externalCoupon->setNotValidMessage($e->getMessage());
|
76 |
+
}
|
77 |
+
|
78 |
+
if ($this->_getConfigHelper()->getIsMagentoVersionLower1410()) {
|
79 |
+
$mageRule = Mage::getModel('salesrule/rule')->load($coupon->getCode(), 'coupon_code');
|
80 |
+
$mageCoupon = $mageRule;
|
81 |
+
} else {
|
82 |
+
$mageCoupon = Mage::getModel('salesrule/coupon')->load($coupon->getCode(), 'code');
|
83 |
+
$mageRule = Mage::getModel('salesrule/rule')->load($mageCoupon->getRuleId());
|
84 |
+
}
|
85 |
+
|
86 |
+
if ($mageRule->getId() && $mageQuote->getCouponCode()) {
|
87 |
+
$discountName = isset($totals['discount'])
|
88 |
+
? $totals['discount']->getTitle()
|
89 |
+
: $mageRule->getDescription();
|
90 |
+
|
91 |
+
$couponInfo = array();
|
92 |
+
$couponInfo["coupon_id"] = $mageCoupon->getId();
|
93 |
+
$couponInfo["rule_id"] = $mageRule->getId();
|
94 |
+
|
95 |
+
$amountCoupon = $mageQuote->getSubtotal() - $mageQuote->getSubtotalWithDiscount();
|
96 |
+
|
97 |
+
$storeLabel = $mageRule->getStoreLabel(Mage::app()->getStore()->getId());
|
98 |
+
$externalCoupon->setName($storeLabel ? $storeLabel : $mageRule->getName());
|
99 |
+
$externalCoupon->setDescription($discountName);
|
100 |
+
$externalCoupon->setIsFreeShipping((bool)$mageQuote->getShippingAddress()->getFreeShipping());
|
101 |
+
$externalCoupon->setInternalInfo($this->jsonEncode($couponInfo));
|
102 |
+
if ($this->useTaxClasses) {
|
103 |
+
$externalCoupon->setAmountGross($amountCoupon);
|
104 |
+
} else {
|
105 |
+
$externalCoupon->setAmountNet($amountCoupon);
|
106 |
+
}
|
107 |
+
if (!$amountCoupon && !$externalCoupon->getIsFreeShipping()) {
|
108 |
+
$externalCoupon->setIsValid(0);
|
109 |
+
$externalCoupon->setAmount(0);
|
110 |
+
$externalCoupon->setNotValidMessage(
|
111 |
+
$this->_getHelper()->__(
|
112 |
+
'Coupon code "%s" is not valid.',
|
113 |
+
Mage::helper('core')->htmlEscape($coupon->getCode())
|
114 |
+
)
|
115 |
+
);
|
116 |
+
}
|
117 |
+
} else {
|
118 |
+
$externalCoupon->setIsValid(0);
|
119 |
+
$externalCoupon->setAmount(0);
|
120 |
+
$externalCoupon->setNotValidMessage(
|
121 |
+
$this->_getHelper()->__(
|
122 |
+
'Coupon code "%s" is not valid.',
|
123 |
+
Mage::helper('core')->htmlEscape($coupon->getCode())
|
124 |
+
)
|
125 |
+
);
|
126 |
+
}
|
127 |
+
|
128 |
+
if ($externalCoupon->getIsValid() && $validCouponsInCart >= 1) {
|
129 |
+
$errorCode = ShopgateLibraryException::COUPON_TOO_MANY_COUPONS;
|
130 |
+
$externalCoupon->setIsValid(false);
|
131 |
+
$externalCoupon->setNotValidMessage(ShopgateLibraryException::getMessageFor($errorCode));
|
132 |
+
}
|
133 |
+
|
134 |
+
if ($externalCoupon->getIsValid()) {
|
135 |
+
$validCouponsInCart++;
|
136 |
+
}
|
137 |
+
$externalCoupon->setCurrency(Mage::app()->getStore()->getCurrentCurrencyCode());
|
138 |
+
$externalCoupons[] = $externalCoupon;
|
139 |
+
}
|
140 |
+
|
141 |
+
if (!empty($discountAmount)
|
142 |
+
&& $validCouponsInCart == 0
|
143 |
+
) {
|
144 |
+
try {
|
145 |
+
$totals = $mageQuote->getTotals();
|
146 |
+
if ($totals['discount']) {
|
147 |
+
$discount = $totals['discount'];
|
148 |
+
|
149 |
+
/** @var ShopgateExternalCoupon $coupon */
|
150 |
+
$coupon = new ShopgateExternalCoupon();
|
151 |
+
$coupon->setIsValid(true);
|
152 |
+
$coupon->setCode(self::CART_RULE_COUPON_CODE);
|
153 |
+
$title = $discount->getTitle();
|
154 |
+
$title = empty($title) ? Mage::helper('sales')->__('Discount') : $title;
|
155 |
+
$coupon->setName($title);
|
156 |
+
$coupon->setDescription($discount->getTitle());
|
157 |
+
$amountCoupon = abs($discount->getValue());
|
158 |
+
if ($this->useTaxClasses) {
|
159 |
+
$coupon->setAmountGross($amountCoupon);
|
160 |
+
} else {
|
161 |
+
$coupon->setAmountNet($amountCoupon);
|
162 |
+
}
|
163 |
+
$coupon->setCurrency(Mage::app()->getStore()->getCurrentCurrencyCode());
|
164 |
+
$coupon->setInternalInfo(
|
165 |
+
$this->_getHelper()->getConfig()->jsonEncode(array('rule_ids' => $appliedRules))
|
166 |
+
);
|
167 |
+
$externalCoupons[] = $coupon;
|
168 |
+
$returnEmptyCoupon = false;
|
169 |
+
}
|
170 |
+
} catch (Exception $e) {
|
171 |
+
$this->log(
|
172 |
+
"Could not add rule with id " . $appliedRules . " to quote",
|
173 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
174 |
+
);
|
175 |
+
return null;
|
176 |
+
}
|
177 |
+
}
|
178 |
+
|
179 |
+
if ($returnEmptyCoupon) {
|
180 |
+
$coupon = new ShopgateExternalCoupon();
|
181 |
+
$coupon->setCode(self::CART_RULE_COUPON_CODE);
|
182 |
+
$coupon->setName(Mage::helper('sales')->__('Discount'));
|
183 |
+
$coupon->setIsValid(false);
|
184 |
+
$externalCoupons[] = $coupon;
|
185 |
+
}
|
186 |
+
|
187 |
+
return $externalCoupons;
|
188 |
+
}
|
189 |
+
|
190 |
+
/**
|
191 |
+
* Add coupon from this system to quote
|
192 |
+
*
|
193 |
+
* @param Mage_Sales_Model_Quote $quote
|
194 |
+
* @param ShopgateCartBase $order
|
195 |
+
*
|
196 |
+
* @return Mage_Sales_Model_Quote
|
197 |
+
* @throws ShopgateLibraryException
|
198 |
+
*/
|
199 |
+
protected function _setQuoteShopCoupons($quote, $order)
|
200 |
+
{
|
201 |
+
$externalCoupons = array();
|
202 |
+
|
203 |
+
foreach ($order->getExternalCoupons() as $coupon) {
|
204 |
+
/* @var $coupon ShopgateExternalCoupon */
|
205 |
+
if ($coupon->getCode() !== self::CART_RULE_COUPON_CODE ) {
|
206 |
+
$externalCoupons[] = $coupon;
|
207 |
+
}
|
208 |
+
}
|
209 |
+
$order->setExternalCoupons($externalCoupons);
|
210 |
+
$quote = parent::_setQuoteShopCoupons($quote, $order);
|
211 |
+
|
212 |
+
$session = Mage::getSingleton('checkout/session');
|
213 |
+
$session->replaceQuote($quote);
|
214 |
+
return $quote;
|
215 |
+
}
|
216 |
+
}
|
app/code/community/Shopgate/CartRules/etc/config.xml
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Shopgate_CartRules>
|
5 |
+
<version>0.1.0</version>
|
6 |
+
</Shopgate_CartRules>
|
7 |
+
</modules>
|
8 |
+
<global>
|
9 |
+
<models>
|
10 |
+
<shopgate>
|
11 |
+
<rewrite>
|
12 |
+
<shopgate_plugin>Shopgate_CartRules_Model_Shopgate_Plugin</shopgate_plugin>
|
13 |
+
<observer>Shopgate_CartRules_Model_Observer</observer>
|
14 |
+
</rewrite>
|
15 |
+
</shopgate>
|
16 |
+
</models>
|
17 |
+
</global>
|
18 |
+
</config>
|
app/code/community/Shopgate/Framework/Block/Payment/MobilePayment.php
CHANGED
@@ -34,6 +34,8 @@
|
|
34 |
* @author Shopgate GmbH, 35510 Butzbach, DE
|
35 |
* @package Shopgate_Framework
|
36 |
*/
|
|
|
|
|
37 |
class Shopgate_Framework_Block_Payment_MobilePayment extends Mage_Payment_Block_Info
|
38 |
{
|
39 |
/**
|
34 |
* @author Shopgate GmbH, 35510 Butzbach, DE
|
35 |
* @package Shopgate_Framework
|
36 |
*/
|
37 |
+
include_once Mage::getBaseDir("lib") . '/Shopgate/shopgate.php';
|
38 |
+
|
39 |
class Shopgate_Framework_Block_Payment_MobilePayment extends Mage_Payment_Block_Info
|
40 |
{
|
41 |
/**
|
app/code/community/Shopgate/Framework/Helper/Data.php
CHANGED
@@ -736,8 +736,8 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
736 |
$item->setIsBuyable((int)$isBuyable);
|
737 |
$item->setQtyBuyable($qtyBuyable);
|
738 |
$item->setStockQuantity($stockQuantity);
|
739 |
-
$item->setUnitAmount($priceExclTax);
|
740 |
-
$item->setUnitAmountWithTax($priceInclTax);
|
741 |
|
742 |
foreach ($errors as $error) {
|
743 |
$item->setError($error['type']);
|
@@ -834,8 +834,8 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
834 |
public function checkQtyIncrements($stockItem, $qty)
|
835 |
{
|
836 |
$result = new Varien_Object();
|
837 |
-
|
838 |
-
if ($
|
839 |
return $result;
|
840 |
}
|
841 |
|
@@ -861,8 +861,10 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
861 |
}
|
862 |
|
863 |
/**
|
864 |
-
* Generates the
|
865 |
-
* and makes the
|
|
|
|
|
866 |
*
|
867 |
* @param int $storeViewId
|
868 |
*
|
@@ -874,17 +876,20 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
874 |
$oldStoreViewId = Mage::app()->getStore()->getId();
|
875 |
Mage::app()->setCurrentStore($storeViewId);
|
876 |
$url = Mage::app()->getStore($storeViewId)
|
877 |
-
->getUrl(
|
|
|
|
|
|
|
878 |
Mage::app()->setCurrentStore($oldStoreViewId);
|
879 |
-
|
880 |
$url = $this->includeHtpassToUrl($url);
|
|
|
881 |
return $url;
|
882 |
}
|
883 |
|
884 |
/**
|
885 |
* Injects .htpassw user & pass into URL
|
886 |
* E.g. http://user:pass@store.com/
|
887 |
-
*
|
888 |
* @param $url
|
889 |
* @return string
|
890 |
*/
|
@@ -896,10 +901,10 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
896 |
$htpsw = $_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW'] . '@';
|
897 |
$url = str_replace(array($http, $https), array($http . $htpsw, $https . $htpsw), $url);
|
898 |
}
|
899 |
-
|
900 |
return $url;
|
901 |
}
|
902 |
-
|
903 |
/**
|
904 |
* Check for enterprise edition
|
905 |
*
|
@@ -977,9 +982,7 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
977 |
public function calculateTaxRate($amount, $taxAmount, $precision = 2)
|
978 |
{
|
979 |
if ($taxAmount > 0) {
|
980 |
-
return round(
|
981 |
-
(100 * $taxAmount) / ($amount - $taxAmount), $precision
|
982 |
-
);
|
983 |
}
|
984 |
|
985 |
return 0.00;
|
@@ -988,15 +991,18 @@ class Shopgate_Framework_Helper_Data extends Mage_Core_Helper_Abstract
|
|
988 |
/**
|
989 |
* Checks if totals from shopgate and magento differ by 1 cent
|
990 |
*
|
991 |
-
* @param ShopgateOrder
|
992 |
-
* @param Mage_Sales_Model_Order
|
993 |
* @return bool
|
994 |
*/
|
995 |
public function oneCentBugDetected($shopgateOrder, $magentoOrder)
|
996 |
{
|
997 |
-
$config
|
998 |
-
$bugDetected
|
999 |
-
|
|
|
|
|
|
|
1000 |
return $bugDetected && $shouldFixBug;
|
1001 |
}
|
1002 |
}
|
736 |
$item->setIsBuyable((int)$isBuyable);
|
737 |
$item->setQtyBuyable($qtyBuyable);
|
738 |
$item->setStockQuantity($stockQuantity);
|
739 |
+
$item->setUnitAmount(round($priceExclTax, 4));
|
740 |
+
$item->setUnitAmountWithTax(round($priceInclTax, 4));
|
741 |
|
742 |
foreach ($errors as $error) {
|
743 |
$item->setError($error['type']);
|
834 |
public function checkQtyIncrements($stockItem, $qty)
|
835 |
{
|
836 |
$result = new Varien_Object();
|
837 |
+
|
838 |
+
if ($stockItem->getSuppressCheckQtyIncrements()) {
|
839 |
return $result;
|
840 |
}
|
841 |
|
861 |
}
|
862 |
|
863 |
/**
|
864 |
+
* Generates the URI to direct back after oAuth authorization
|
865 |
+
* and makes the URI unique via store view id.
|
866 |
+
* Due to this being called from frontend & backend we need
|
867 |
+
* to exclude SID to make the redirect_uri match in both calls.
|
868 |
*
|
869 |
* @param int $storeViewId
|
870 |
*
|
876 |
$oldStoreViewId = Mage::app()->getStore()->getId();
|
877 |
Mage::app()->setCurrentStore($storeViewId);
|
878 |
$url = Mage::app()->getStore($storeViewId)
|
879 |
+
->getUrl(
|
880 |
+
'shopgate/framework/receive_authorization/storeviewid/' . $storeViewId,
|
881 |
+
array('_nosid' => true)
|
882 |
+
);
|
883 |
Mage::app()->setCurrentStore($oldStoreViewId);
|
|
|
884 |
$url = $this->includeHtpassToUrl($url);
|
885 |
+
|
886 |
return $url;
|
887 |
}
|
888 |
|
889 |
/**
|
890 |
* Injects .htpassw user & pass into URL
|
891 |
* E.g. http://user:pass@store.com/
|
892 |
+
*
|
893 |
* @param $url
|
894 |
* @return string
|
895 |
*/
|
901 |
$htpsw = $_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW'] . '@';
|
902 |
$url = str_replace(array($http, $https), array($http . $htpsw, $https . $htpsw), $url);
|
903 |
}
|
904 |
+
|
905 |
return $url;
|
906 |
}
|
907 |
+
|
908 |
/**
|
909 |
* Check for enterprise edition
|
910 |
*
|
982 |
public function calculateTaxRate($amount, $taxAmount, $precision = 2)
|
983 |
{
|
984 |
if ($taxAmount > 0) {
|
985 |
+
return round((100 * $taxAmount) / ($amount - $taxAmount), $precision);
|
|
|
|
|
986 |
}
|
987 |
|
988 |
return 0.00;
|
991 |
/**
|
992 |
* Checks if totals from shopgate and magento differ by 1 cent
|
993 |
*
|
994 |
+
* @param ShopgateOrder $shopgateOrder
|
995 |
+
* @param Mage_Sales_Model_Order $magentoOrder
|
996 |
* @return bool
|
997 |
*/
|
998 |
public function oneCentBugDetected($shopgateOrder, $magentoOrder)
|
999 |
{
|
1000 |
+
$config = $this->getConfig();
|
1001 |
+
$bugDetected = round(
|
1002 |
+
abs($shopgateOrder->getAmountComplete() - $magentoOrder->getQuoteBaseGrandTotal()),
|
1003 |
+
2
|
1004 |
+
) == 0.01;
|
1005 |
+
$shouldFixBug = $config->getFixOneCentBug();
|
1006 |
return $bugDetected && $shouldFixBug;
|
1007 |
}
|
1008 |
}
|
app/code/community/Shopgate/Framework/Helper/Sales.php
CHANGED
@@ -204,8 +204,17 @@ class Shopgate_Framework_Helper_Sales extends Mage_Core_Helper_Abstract
|
|
204 |
|
205 |
/** @var Mage_Sales_Model_Quote_Item $_item */
|
206 |
foreach ($quote->getAllVisibleItems() as $_item) {
|
207 |
-
|
208 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
209 |
}
|
210 |
|
211 |
foreach (Mage::helper('shopgate')->fetchMissingQuoteItems($cart, $quote) as $_item) {
|
204 |
|
205 |
/** @var Mage_Sales_Model_Quote_Item $_item */
|
206 |
foreach ($quote->getAllVisibleItems() as $_item) {
|
207 |
+
$price = $_item->getProduct()->getFinalPrice();
|
208 |
+
$priceIncludesTax = Mage::helper('tax')->priceIncludesTax($quote->getStore());
|
209 |
+
$percent = $_item->getTaxPercent();
|
210 |
+
if ($priceIncludesTax) {
|
211 |
+
$priceInclTax = $price;
|
212 |
+
$priceExclTax = $price / (1 + ($percent/100));
|
213 |
+
} else {
|
214 |
+
$priceInclTax = $price * (1 + ($percent/100));
|
215 |
+
$priceExclTax = $price;
|
216 |
+
}
|
217 |
+
$items[] = $validator->validateStock($_item, $priceInclTax, $priceExclTax);
|
218 |
}
|
219 |
|
220 |
foreach (Mage::helper('shopgate')->fetchMissingQuoteItems($cart, $quote) as $_item) {
|
app/code/community/Shopgate/Framework/Model/Observer.php
CHANGED
@@ -61,8 +61,8 @@ class Shopgate_Framework_Model_Observer
|
|
61 |
public function setShippingStatus(Varien_Event_Observer $observer)
|
62 |
{
|
63 |
ShopgateLogger::getInstance()->log(
|
64 |
-
|
65 |
-
|
66 |
);
|
67 |
|
68 |
$order = $observer->getEvent()->getShipment()->getOrder();
|
@@ -78,13 +78,13 @@ class Shopgate_Framework_Model_Observer
|
|
78 |
$errors = 0;
|
79 |
|
80 |
if (!Mage::getStoreConfig(Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_ACTIVE, $order->getStore())) {
|
81 |
-
ShopgateLogger::getInstance()->log(
|
82 |
return;
|
83 |
}
|
84 |
|
85 |
$this->_initMerchantApi($order->getStoreId());
|
86 |
if (!$this->_config->isValidConfig()) {
|
87 |
-
ShopgateLogger::getInstance()->log(
|
88 |
return;
|
89 |
}
|
90 |
|
@@ -93,8 +93,8 @@ class Shopgate_Framework_Model_Observer
|
|
93 |
/** @var $shipments Mage_Sales_Model_Resource_Order_Shipment_Collection */
|
94 |
$shipments = $order->getShipmentsCollection();
|
95 |
ShopgateLogger::getInstance()->log(
|
96 |
-
|
97 |
-
|
98 |
);
|
99 |
|
100 |
$reportedShipments = $shopgateOrder->getReportedShippingCollections();
|
@@ -107,29 +107,29 @@ class Shopgate_Framework_Model_Observer
|
|
107 |
/** @var Mage_Sales_Model_Resource_Order_Shipment_Track_Collection $tracks */
|
108 |
$tracks = $shipment->getTracksCollection();
|
109 |
ShopgateLogger::getInstance()->log(
|
110 |
-
|
111 |
-
|
112 |
);
|
113 |
|
114 |
$notes = array();
|
115 |
if ($tracks->count() == 0) {
|
116 |
-
$notes[] = array(
|
117 |
}
|
118 |
|
119 |
foreach ($tracks as $track) {
|
120 |
/* @var $track Mage_Sales_Model_Order_Shipment_Track */
|
121 |
switch ($track->getCarrierCode()) {
|
122 |
-
case
|
123 |
$carrier = ShopgateDeliveryNote::FEDEX;
|
124 |
break;
|
125 |
-
case
|
126 |
$carrier = ShopgateDeliveryNote::USPS;
|
127 |
break;
|
128 |
-
case
|
129 |
$carrier = ShopgateDeliveryNote::UPS;
|
130 |
break;
|
131 |
-
case
|
132 |
-
case
|
133 |
$carrier = ShopgateDeliveryNote::DHL;
|
134 |
break;
|
135 |
default:
|
@@ -137,23 +137,23 @@ class Shopgate_Framework_Model_Observer
|
|
137 |
break;
|
138 |
}
|
139 |
|
140 |
-
$notes[] = array(
|
141 |
}
|
142 |
|
143 |
foreach ($notes as $note) {
|
144 |
try {
|
145 |
ShopgateLogger::getInstance()->log(
|
146 |
-
|
147 |
-
|
148 |
);
|
149 |
$this->_merchantApi->addOrderDeliveryNote(
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
);
|
154 |
ShopgateLogger::getInstance()->log(
|
155 |
-
|
156 |
-
|
157 |
);
|
158 |
$reportedShipments[] = $shipment->getId();
|
159 |
} catch (ShopgateMerchantApiException $e) {
|
@@ -166,23 +166,23 @@ class Shopgate_Framework_Model_Observer
|
|
166 |
|
167 |
$errors++;
|
168 |
ShopgateLogger::getInstance()->log(
|
169 |
-
|
170 |
-
|
171 |
);
|
172 |
ShopgateLogger::getInstance()->log(
|
173 |
-
|
174 |
-
|
175 |
);
|
176 |
}
|
177 |
} catch (Exception $e) {
|
178 |
|
179 |
ShopgateLogger::getInstance()->log(
|
180 |
-
|
181 |
-
|
182 |
);
|
183 |
ShopgateLogger::getInstance()->log(
|
184 |
-
|
185 |
-
|
186 |
);
|
187 |
$errors++;
|
188 |
}
|
@@ -196,18 +196,18 @@ class Shopgate_Framework_Model_Observer
|
|
196 |
$shopgateOrder->setReportedShippingCollections($reportedShipments);
|
197 |
$shopgateOrder->save();
|
198 |
|
199 |
-
ShopgateLogger::getInstance()->log(
|
200 |
|
201 |
if ($errors > 0) {
|
202 |
Mage::getSingleton('core/session')->addError(
|
203 |
-
Mage::helper(
|
204 |
-
|
205 |
$errors['errorcount']
|
206 |
)
|
207 |
);
|
208 |
} else {
|
209 |
Mage::getSingleton('core/session')->addSuccess(
|
210 |
-
Mage::helper(
|
211 |
);
|
212 |
}
|
213 |
}
|
@@ -221,7 +221,7 @@ class Shopgate_Framework_Model_Observer
|
|
221 |
{
|
222 |
/* @var $config Shopgate_Framework_Model_Config */
|
223 |
if ($this->_config == null) {
|
224 |
-
$this->_config = Mage::helper(
|
225 |
}
|
226 |
$builder = new ShopgateBuilder($this->_config);
|
227 |
$this->_merchantApi = $builder->buildMerchantApi();
|
@@ -250,69 +250,69 @@ class Shopgate_Framework_Model_Observer
|
|
250 |
&& $order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE
|
251 |
) {
|
252 |
ShopgateLogger::getInstance()->log(
|
253 |
-
|
254 |
-
|
255 |
);
|
256 |
$isShipmentComplete = true;
|
257 |
}
|
258 |
|
259 |
if (!$isShipmentComplete) {
|
260 |
ShopgateLogger::getInstance()->log(
|
261 |
-
|
262 |
-
|
263 |
);
|
264 |
return true;
|
265 |
}
|
266 |
|
267 |
try {
|
268 |
ShopgateLogger::getInstance()->log(
|
269 |
-
|
270 |
-
|
271 |
);
|
272 |
$this->_merchantApi->setOrderShippingCompleted($shopgateOrder->getShopgateOrderNumber());
|
273 |
ShopgateLogger::getInstance()->log(
|
274 |
-
|
275 |
-
|
276 |
);
|
277 |
} catch (ShopgateMerchantApiException $e) {
|
278 |
if ($e->getCode() == ShopgateMerchantApiException::ORDER_SHIPPING_STATUS_ALREADY_COMPLETED
|
279 |
|| $e->getCode() == ShopgateMerchantApiException::ORDER_ALREADY_COMPLETED
|
280 |
) {
|
281 |
Mage::getSingleton('core/session')->addNotice(
|
282 |
-
Mage::helper(
|
283 |
-
|
284 |
)
|
285 |
);
|
286 |
} else {
|
287 |
Mage::getSingleton('core/session')->addError(
|
288 |
-
Mage::helper(
|
289 |
-
|
290 |
)
|
291 |
);
|
292 |
Mage::getSingleton('core/session')->addError("{$e->getCode()} - {$e->getMessage()}");
|
293 |
ShopgateLogger::getInstance()->log(
|
294 |
-
|
295 |
-
|
296 |
);
|
297 |
ShopgateLogger::getInstance()->log(
|
298 |
-
|
299 |
-
|
300 |
);
|
301 |
return false;
|
302 |
}
|
303 |
} catch (Exception $e) {
|
304 |
Mage::getSingleton('core/session')->addError(
|
305 |
-
Mage::helper(
|
306 |
-
|
307 |
)
|
308 |
);
|
309 |
ShopgateLogger::getInstance()->log(
|
310 |
-
|
311 |
-
|
312 |
);
|
313 |
ShopgateLogger::getInstance()->log(
|
314 |
-
|
315 |
-
|
316 |
);
|
317 |
return false;
|
318 |
}
|
@@ -324,42 +324,44 @@ class Shopgate_Framework_Model_Observer
|
|
324 |
|
325 |
/**
|
326 |
* full cancel of the order at shopgate
|
327 |
-
* $data[
|
328 |
-
* called on event
|
329 |
* called from Mage_Sales_Model_Order::cancel()
|
330 |
* Uses the cancle_order action in ShopgateMerchantApi
|
331 |
*
|
332 |
* @see http://wiki.shopgate.com/Merchant_API_cancel_order
|
333 |
* @param Varien_Event_Observer $observer
|
334 |
-
*
|
|
|
335 |
*/
|
336 |
public function cancelOrder(Varien_Event_Observer $observer)
|
337 |
{
|
338 |
/* @var $order Mage_Sales_Model_Order */
|
339 |
$order = $observer->getEvent()->getOrder();
|
340 |
/* @var $shopgateOrder Shopgate_Framework_Model_Shopgate_Order */
|
341 |
-
$shopgateOrder = Mage::getModel(
|
342 |
|
343 |
if (!$shopgateOrder->getId()) {
|
344 |
return true;
|
345 |
}
|
346 |
|
347 |
if ($order instanceof Mage_Sales_Model_Order) {
|
|
|
348 |
try {
|
349 |
-
|
350 |
$this->_initMerchantApi($order->getStoreId());
|
351 |
|
352 |
// Do nothing if plugin is not active for this store
|
353 |
if (!Mage::getStoreConfig(
|
354 |
-
|
355 |
-
|
356 |
)
|
357 |
) {
|
358 |
-
return
|
359 |
}
|
360 |
|
361 |
if (!$this->_config->isValidConfig()) {
|
362 |
-
return
|
363 |
}
|
364 |
|
365 |
$cancellationItems = array();
|
@@ -368,7 +370,6 @@ class Shopgate_Framework_Model_Observer
|
|
368 |
$rd = $shopgateOrder->getShopgateOrderObject();
|
369 |
|
370 |
$orderItems = $order->getItemsCollection();
|
371 |
-
$rdItem = false;
|
372 |
|
373 |
foreach ($orderItems as $orderItem) {
|
374 |
/** @var $orderItem Mage_Sales_Model_Order_Item */
|
@@ -388,8 +389,8 @@ class Shopgate_Framework_Model_Observer
|
|
388 |
) {
|
389 |
|
390 |
$cancellationItems[] = array(
|
391 |
-
|
392 |
-
|
393 |
);
|
394 |
$qtyCancelled += intval($orderItem->getQtyCanceled()) + intval($orderItem->getQtyRefunded());
|
395 |
}
|
@@ -399,16 +400,14 @@ class Shopgate_Framework_Model_Observer
|
|
399 |
&& empty($cancellationItems)
|
400 |
) {
|
401 |
$order->addStatusHistoryComment(
|
402 |
-
|
403 |
);
|
404 |
$order->save();
|
405 |
return true;
|
406 |
}
|
407 |
|
408 |
-
$fullCancellation = empty($cancellationItems);
|
409 |
-
$fullCancellation = $fullCancellation || $qtyCancelled == $order->getTotalQtyOrdered();
|
410 |
$cancelShippingCosts = !$shopgateOrder->hasShippedItems($order);
|
411 |
-
|
412 |
/** @var Mage_Sales_Model_Order_Creditmemo $creditMemo */
|
413 |
$creditMemo = $observer->getEvent()->getCreditMemo();
|
414 |
if ($creditMemo) {
|
@@ -419,16 +418,19 @@ class Shopgate_Framework_Model_Observer
|
|
419 |
}
|
420 |
}
|
421 |
|
|
|
|
|
|
|
422 |
$this->_merchantApi->cancelOrder(
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
);
|
429 |
|
430 |
Mage::getSingleton('core/session')->addSuccess(
|
431 |
-
Mage::helper(
|
432 |
);
|
433 |
|
434 |
$shopgateOrder->setIsCancellationSentToShopgate(true);
|
@@ -436,56 +438,58 @@ class Shopgate_Framework_Model_Observer
|
|
436 |
|
437 |
if (!$shopgateOrder->getIsSentToShopgate() && !$this->_completeShipping($shopgateOrder, $order)) {
|
438 |
$this->_logShopgateError(
|
439 |
-
|
440 |
-
|
441 |
);
|
442 |
}
|
443 |
} catch (ShopgateMerchantApiException $e) {
|
444 |
|
445 |
-
if ($e->getCode() ==
|
446 |
// order already canceled in shopgate
|
447 |
$shopgateOrder->setIsCancellationSentToShopgate(true);
|
448 |
$shopgateOrder->save();
|
449 |
} else {
|
450 |
// Received error from shopgate server
|
451 |
Mage::getSingleton('core/session')->addError(
|
452 |
-
Mage::helper(
|
453 |
-
|
454 |
)
|
455 |
);
|
456 |
|
457 |
Mage::getSingleton('core/session')->addError("Error: {$e->getCode()} - {$e->getMessage()}");
|
458 |
|
459 |
$this->_logShopgateError(
|
460 |
-
|
461 |
{$e->getMessage()}",
|
462 |
-
|
463 |
);
|
464 |
$this->_logShopgateError(
|
465 |
-
|
466 |
{$e->getMessage()}",
|
467 |
-
|
468 |
);
|
469 |
}
|
470 |
} catch (Exception $e) {
|
471 |
Mage::getSingleton('core/session')->addError(
|
472 |
-
Mage::helper(
|
473 |
-
|
474 |
)
|
475 |
);
|
476 |
|
477 |
$this->_logShopgateError(
|
478 |
-
|
479 |
{$e->getMessage()}",
|
480 |
-
|
481 |
);
|
482 |
$this->_logShopgateError(
|
483 |
-
|
484 |
{$e->getMessage()}",
|
485 |
-
|
486 |
);
|
487 |
}
|
488 |
}
|
|
|
|
|
489 |
}
|
490 |
|
491 |
/**
|
@@ -555,8 +559,8 @@ class Shopgate_Framework_Model_Observer
|
|
555 |
$object = Mage::helper('shopgate')->getConfig()->jsonDecode($json_info);
|
556 |
} catch (Exception $e) {
|
557 |
ShopgateLogger::getInstance()->log(
|
558 |
-
|
559 |
-
|
560 |
);
|
561 |
return false;
|
562 |
}
|
@@ -576,12 +580,12 @@ class Shopgate_Framework_Model_Observer
|
|
576 |
*/
|
577 |
public function beforeSalesrulesLoaded($observer)
|
578 |
{
|
579 |
-
if (Mage::helper(
|
580 |
$collection = $observer->getEvent()->getCollection();
|
581 |
if ($collection instanceof Mage_SalesRule_Model_Resource_Rule_Collection) {
|
582 |
$collection->getSelect()->where(
|
583 |
-
|
584 |
-
|
585 |
);
|
586 |
}
|
587 |
}
|
@@ -592,34 +596,34 @@ class Shopgate_Framework_Model_Observer
|
|
592 |
*/
|
593 |
public function deleteShopgateCouponProducts($observer)
|
594 |
{
|
595 |
-
if (Mage::helper(
|
596 |
-
$eventResourceModule = explode(
|
597 |
-
$eventResourceModule = count($eventResourceModule) ? $eventResourceModule[0] :
|
598 |
/* Prevent collection loading on admin to avoid an error while using flat tables */
|
599 |
-
if ((Mage::app()->getStore()->isAdmin() && !$eventResourceModule ==
|
600 |
-
(!Mage::helper('shopgate')->isShopgateApiRequest() && !$eventResourceModule ==
|
601 |
) {
|
602 |
return;
|
603 |
}
|
604 |
-
|
605 |
$oldStoreViewId = Mage::app()->getStore()->getId();
|
606 |
-
|
607 |
-
if ($eventResourceModule ==
|
608 |
$storeViewIds = Mage::getModel('core/store')->getCollection()->toOptionArray();
|
609 |
} else {
|
610 |
-
$storeViewIds = array(array(
|
611 |
}
|
612 |
-
|
613 |
foreach ($storeViewIds as $storeView) {
|
614 |
$storeViewId = $storeView['value'];
|
615 |
Mage::app()->setCurrentStore($storeViewId);
|
616 |
-
|
617 |
$collection = Mage::getModel('catalog/product')
|
618 |
->getResourceCollection()
|
619 |
->addFieldToFilter('type_id', 'virtual');
|
620 |
-
|
621 |
$helper = Mage::helper('shopgate/coupon');
|
622 |
-
|
623 |
foreach ($collection->getItems() as $product) {
|
624 |
if ($helper->isShopgateCoupon($product)) {
|
625 |
Mage::app()->setCurrentStore(0);
|
@@ -646,14 +650,18 @@ class Shopgate_Framework_Model_Observer
|
|
646 |
$storeViewId = Mage::app()->getRequest()->getParam('storeviewid');
|
647 |
|
648 |
if (Mage::helper('shopgate/config')->isOAuthShopAlreadyRegistered($settings['shop_number'], $storeViewId)) {
|
649 |
-
Mage::throwException(
|
|
|
|
|
650 |
}
|
651 |
|
652 |
$config->setStoreViewId($storeViewId);
|
653 |
|
654 |
/* pre save shop_number in proper scope to trigger the save mechanisms scope definition algorithm */
|
655 |
if (!$config->oauthSaveNewShopNumber($settings['shop_number'], $storeViewId)) {
|
656 |
-
Mage::throwExecption(
|
|
|
|
|
657 |
}
|
658 |
|
659 |
unset($settings['shop_number']);
|
@@ -669,7 +677,10 @@ class Shopgate_Framework_Model_Observer
|
|
669 |
&& Mage::app()->getRequest()->getParam('action') == 'receive_authorization'
|
670 |
) {
|
671 |
$storeViewId = Mage::app()->getRequest()->getParam('storeviewid');
|
672 |
-
$shopnumber = Mage::getStoreConfig(
|
|
|
|
|
|
|
673 |
|
674 |
$collection = Mage::getModel('core/config_data')
|
675 |
->getCollection()
|
@@ -692,14 +703,14 @@ class Shopgate_Framework_Model_Observer
|
|
692 |
*/
|
693 |
public function checkForUpdates()
|
694 |
{
|
695 |
-
$model
|
696 |
$model->checkUpdate();
|
697 |
}
|
698 |
|
699 |
/**
|
700 |
* @param Varien_Event_Observer $observer
|
701 |
*
|
702 |
-
* @return $this
|
703 |
*/
|
704 |
public function manipulateShipmentForBillsafe(Varien_Event_Observer $observer)
|
705 |
{
|
@@ -709,15 +720,16 @@ class Shopgate_Framework_Model_Observer
|
|
709 |
$code = $shipment->getOrder()->getPayment()->getMethodInstance()->getCode();
|
710 |
|
711 |
if ($code != Netresearch_Billsafe_Model_Payment::CODE) {
|
712 |
-
return;
|
713 |
}
|
714 |
|
715 |
-
$magentoShopgateOrder = Mage::getModel(
|
716 |
-
$shipment->getOrder()->getId(),
|
|
|
717 |
);
|
718 |
|
719 |
if ($magentoShopgateOrder->getId() == null) {
|
720 |
-
return;
|
721 |
}
|
722 |
|
723 |
/**
|
@@ -730,7 +742,6 @@ class Shopgate_Framework_Model_Observer
|
|
730 |
$order->setIsShopgateOrder(true);
|
731 |
|
732 |
return $this;
|
733 |
-
|
734 |
}
|
735 |
|
736 |
return $this;
|
@@ -756,7 +767,8 @@ class Shopgate_Framework_Model_Observer
|
|
756 |
*/
|
757 |
$config = $observer->getConfig();
|
758 |
$optionTab = $config->getNode('sections/shopgate/groups/option/fields');
|
759 |
-
$devConfig = new Mage_Core_Model_Config_Element(
|
|
|
760 |
<fields>
|
761 |
<customer_number translate="label comment tooltip">
|
762 |
<label>Customer number</label>
|
@@ -792,7 +804,8 @@ class Shopgate_Framework_Model_Observer
|
|
792 |
</validate>
|
793 |
</api_key>
|
794 |
</fields>
|
795 |
-
|
|
|
796 |
|
797 |
$optionTab->extend($devConfig);
|
798 |
|
@@ -802,7 +815,8 @@ class Shopgate_Framework_Model_Observer
|
|
802 |
* @var Mage_Core_Model_Config_Element $shopgateSection
|
803 |
*/
|
804 |
$shopgateSection = $config->getNode('sections/shopgate/groups');
|
805 |
-
$hiddenGroup = new Mage_Core_Model_Config_Element(
|
|
|
806 |
<hidden translate="label">
|
807 |
<label>Developer Only Section</label>
|
808 |
<sort_order>15</sort_order>
|
@@ -821,7 +835,8 @@ class Shopgate_Framework_Model_Observer
|
|
821 |
</oauth_access_token>
|
822 |
</fields>
|
823 |
</hidden>
|
824 |
-
|
|
|
825 |
$shopgateSection->appendChild($hiddenGroup);
|
826 |
|
827 |
return $this;
|
61 |
public function setShippingStatus(Varien_Event_Observer $observer)
|
62 |
{
|
63 |
ShopgateLogger::getInstance()->log(
|
64 |
+
'Try to set Shipping state for current Order',
|
65 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
66 |
);
|
67 |
|
68 |
$order = $observer->getEvent()->getShipment()->getOrder();
|
78 |
$errors = 0;
|
79 |
|
80 |
if (!Mage::getStoreConfig(Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_ACTIVE, $order->getStore())) {
|
81 |
+
ShopgateLogger::getInstance()->log('> Plugin is not active, return!', ShopgateLogger::LOGTYPE_DEBUG);
|
82 |
return;
|
83 |
}
|
84 |
|
85 |
$this->_initMerchantApi($order->getStoreId());
|
86 |
if (!$this->_config->isValidConfig()) {
|
87 |
+
ShopgateLogger::getInstance()->log('> Plugin has no valid config data!', ShopgateLogger::LOGTYPE_DEBUG);
|
88 |
return;
|
89 |
}
|
90 |
|
93 |
/** @var $shipments Mage_Sales_Model_Resource_Order_Shipment_Collection */
|
94 |
$shipments = $order->getShipmentsCollection();
|
95 |
ShopgateLogger::getInstance()->log(
|
96 |
+
"> getTrackCollections from MagentoOrder (count: '" . $shipments->count() . "')",
|
97 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
98 |
);
|
99 |
|
100 |
$reportedShipments = $shopgateOrder->getReportedShippingCollections();
|
107 |
/** @var Mage_Sales_Model_Resource_Order_Shipment_Track_Collection $tracks */
|
108 |
$tracks = $shipment->getTracksCollection();
|
109 |
ShopgateLogger::getInstance()->log(
|
110 |
+
"> getTrackCollections from MagentoOrderShippment (count: '" . $tracks->count() . "')",
|
111 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
112 |
);
|
113 |
|
114 |
$notes = array();
|
115 |
if ($tracks->count() == 0) {
|
116 |
+
$notes[] = array('service' => ShopgateDeliveryNote::OTHER, 'tracking_number' => '');
|
117 |
}
|
118 |
|
119 |
foreach ($tracks as $track) {
|
120 |
/* @var $track Mage_Sales_Model_Order_Shipment_Track */
|
121 |
switch ($track->getCarrierCode()) {
|
122 |
+
case 'fedex':
|
123 |
$carrier = ShopgateDeliveryNote::FEDEX;
|
124 |
break;
|
125 |
+
case 'usps':
|
126 |
$carrier = ShopgateDeliveryNote::USPS;
|
127 |
break;
|
128 |
+
case 'ups':
|
129 |
$carrier = ShopgateDeliveryNote::UPS;
|
130 |
break;
|
131 |
+
case 'dhlint':
|
132 |
+
case 'dhl':
|
133 |
$carrier = ShopgateDeliveryNote::DHL;
|
134 |
break;
|
135 |
default:
|
137 |
break;
|
138 |
}
|
139 |
|
140 |
+
$notes[] = array('service' => $carrier, 'tracking_number' => $track->getNumber());
|
141 |
}
|
142 |
|
143 |
foreach ($notes as $note) {
|
144 |
try {
|
145 |
ShopgateLogger::getInstance()->log(
|
146 |
+
"> Try to call SMA::addOrderDeliveryNote (Ordernumber: {$shopgateOrder->getShopgateOrderNumber()} )",
|
147 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
148 |
);
|
149 |
$this->_merchantApi->addOrderDeliveryNote(
|
150 |
+
$shopgateOrder->getShopgateOrderNumber(),
|
151 |
+
$note['service'],
|
152 |
+
$note['tracking_number']
|
153 |
);
|
154 |
ShopgateLogger::getInstance()->log(
|
155 |
+
'> Call to SMA::addOrderDeliveryNote was successfull!',
|
156 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
157 |
);
|
158 |
$reportedShipments[] = $shipment->getId();
|
159 |
} catch (ShopgateMerchantApiException $e) {
|
166 |
|
167 |
$errors++;
|
168 |
ShopgateLogger::getInstance()->log(
|
169 |
+
"! (#{$orderNumber}) SMA-Error on add delivery note! Message: {$e->getCode()} - {$e->getMessage()}",
|
170 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
171 |
);
|
172 |
ShopgateLogger::getInstance()->log(
|
173 |
+
"(#{$orderNumber}) SMA-Error on add delivery note! Message: {$e->getCode()} - {$e->getMessage()}",
|
174 |
+
ShopgateLogger::LOGTYPE_ERROR
|
175 |
);
|
176 |
}
|
177 |
} catch (Exception $e) {
|
178 |
|
179 |
ShopgateLogger::getInstance()->log(
|
180 |
+
"! (#{$orderNumber}) SMA-Error on add delivery note! Message: {$e->getCode()} - {$e->getMessage()}",
|
181 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
182 |
);
|
183 |
ShopgateLogger::getInstance()->log(
|
184 |
+
"(#{$orderNumber}) SMA-Error on add delivery note! Message: {$e->getCode()} - {$e->getMessage()}",
|
185 |
+
ShopgateLogger::LOGTYPE_ERROR
|
186 |
);
|
187 |
$errors++;
|
188 |
}
|
196 |
$shopgateOrder->setReportedShippingCollections($reportedShipments);
|
197 |
$shopgateOrder->save();
|
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')->__(
|
204 |
+
'[SHOPGATE] Order status was updated but %s errors occurred',
|
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 |
}
|
221 |
{
|
222 |
/* @var $config Shopgate_Framework_Model_Config */
|
223 |
if ($this->_config == null) {
|
224 |
+
$this->_config = Mage::helper('shopgate/config')->getConfig($storeId);
|
225 |
}
|
226 |
$builder = new ShopgateBuilder($this->_config);
|
227 |
$this->_merchantApi = $builder->buildMerchantApi();
|
250 |
&& $order->getState() == Mage_Sales_Model_Order::STATE_COMPLETE
|
251 |
) {
|
252 |
ShopgateLogger::getInstance()->log(
|
253 |
+
"> (#{$orderNumber}) Order state is complete and should send to Shopgate",
|
254 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
255 |
);
|
256 |
$isShipmentComplete = true;
|
257 |
}
|
258 |
|
259 |
if (!$isShipmentComplete) {
|
260 |
ShopgateLogger::getInstance()->log(
|
261 |
+
"> (#{$orderNumber}) This order is not shipped completly",
|
262 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
263 |
);
|
264 |
return true;
|
265 |
}
|
266 |
|
267 |
try {
|
268 |
ShopgateLogger::getInstance()->log(
|
269 |
+
"> (#{$orderNumber}) Try to call SMA::setOrderShippingCompleted (Ordernumber: {$shopgateOrder->getShopgateOrderNumber()} )",
|
270 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
271 |
);
|
272 |
$this->_merchantApi->setOrderShippingCompleted($shopgateOrder->getShopgateOrderNumber());
|
273 |
ShopgateLogger::getInstance()->log(
|
274 |
+
"> (#{$orderNumber}) Call to SMA::setOrderShippingCompleted was successfull!",
|
275 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
276 |
);
|
277 |
} catch (ShopgateMerchantApiException $e) {
|
278 |
if ($e->getCode() == ShopgateMerchantApiException::ORDER_SHIPPING_STATUS_ALREADY_COMPLETED
|
279 |
|| $e->getCode() == ShopgateMerchantApiException::ORDER_ALREADY_COMPLETED
|
280 |
) {
|
281 |
Mage::getSingleton('core/session')->addNotice(
|
282 |
+
Mage::helper('shopgate')->__(
|
283 |
+
'[SHOPGATE] The order status is already set to "shipped" at Shopgate!'
|
284 |
)
|
285 |
);
|
286 |
} else {
|
287 |
Mage::getSingleton('core/session')->addError(
|
288 |
+
Mage::helper('shopgate')->__(
|
289 |
+
'[SHOPGATE] An error occured while updating the shipping status.<br />Please contact Shopgate support.'
|
290 |
)
|
291 |
);
|
292 |
Mage::getSingleton('core/session')->addError("{$e->getCode()} - {$e->getMessage()}");
|
293 |
ShopgateLogger::getInstance()->log(
|
294 |
+
"! (#{$orderNumber}) SMA-Error on set shipping complete! Message: {$e->getCode()} - {$e->getMessage()}",
|
295 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
296 |
);
|
297 |
ShopgateLogger::getInstance()->log(
|
298 |
+
"(#{$orderNumber}) SMA-Error on set shipping complete! Message: {$e->getCode()} - {$e->getMessage()}",
|
299 |
+
ShopgateLogger::LOGTYPE_ERROR
|
300 |
);
|
301 |
return false;
|
302 |
}
|
303 |
} catch (Exception $e) {
|
304 |
Mage::getSingleton('core/session')->addError(
|
305 |
+
Mage::helper('shopgate')->__(
|
306 |
+
'[SHOPGATE] An unknown error occured!<br />Please contact Shopgate support.'
|
307 |
)
|
308 |
);
|
309 |
ShopgateLogger::getInstance()->log(
|
310 |
+
"! (#{$orderNumber}) unknown error on set shipping complete! Message: {$e->getCode()} - {$e->getMessage()}",
|
311 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
312 |
);
|
313 |
ShopgateLogger::getInstance()->log(
|
314 |
+
"(#{$orderNumber}) Unkwon error on set shipping complete! Message: {$e->getCode()} - {$e->getMessage()}",
|
315 |
+
ShopgateLogger::LOGTYPE_ERROR
|
316 |
);
|
317 |
return false;
|
318 |
}
|
324 |
|
325 |
/**
|
326 |
* full cancel of the order at shopgate
|
327 |
+
* $data['order'] should set with an object of Mage_Sales_Model_Order
|
328 |
+
* called on event 'order_cancel_after'
|
329 |
* called from Mage_Sales_Model_Order::cancel()
|
330 |
* Uses the cancle_order action in ShopgateMerchantApi
|
331 |
*
|
332 |
* @see http://wiki.shopgate.com/Merchant_API_cancel_order
|
333 |
* @param Varien_Event_Observer $observer
|
334 |
+
*
|
335 |
+
* @return $this
|
336 |
*/
|
337 |
public function cancelOrder(Varien_Event_Observer $observer)
|
338 |
{
|
339 |
/* @var $order Mage_Sales_Model_Order */
|
340 |
$order = $observer->getEvent()->getOrder();
|
341 |
/* @var $shopgateOrder Shopgate_Framework_Model_Shopgate_Order */
|
342 |
+
$shopgateOrder = Mage::getModel('shopgate/shopgate_order')->load($order->getId(), 'order_id');
|
343 |
|
344 |
if (!$shopgateOrder->getId()) {
|
345 |
return true;
|
346 |
}
|
347 |
|
348 |
if ($order instanceof Mage_Sales_Model_Order) {
|
349 |
+
$orderNumber = $shopgateOrder->getShopgateOrderNumber();
|
350 |
try {
|
351 |
+
|
352 |
$this->_initMerchantApi($order->getStoreId());
|
353 |
|
354 |
// Do nothing if plugin is not active for this store
|
355 |
if (!Mage::getStoreConfig(
|
356 |
+
Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_ACTIVE,
|
357 |
+
$this->_config->getStoreViewId()
|
358 |
)
|
359 |
) {
|
360 |
+
return $this;
|
361 |
}
|
362 |
|
363 |
if (!$this->_config->isValidConfig()) {
|
364 |
+
return $this;
|
365 |
}
|
366 |
|
367 |
$cancellationItems = array();
|
370 |
$rd = $shopgateOrder->getShopgateOrderObject();
|
371 |
|
372 |
$orderItems = $order->getItemsCollection();
|
|
|
373 |
|
374 |
foreach ($orderItems as $orderItem) {
|
375 |
/** @var $orderItem Mage_Sales_Model_Order_Item */
|
389 |
) {
|
390 |
|
391 |
$cancellationItems[] = array(
|
392 |
+
'item_number' => $rdItem->getItemNumber(),
|
393 |
+
'quantity' => intval($orderItem->getQtyCanceled()) + intval($orderItem->getQtyRefunded())
|
394 |
);
|
395 |
$qtyCancelled += intval($orderItem->getQtyCanceled()) + intval($orderItem->getQtyRefunded());
|
396 |
}
|
400 |
&& empty($cancellationItems)
|
401 |
) {
|
402 |
$order->addStatusHistoryComment(
|
403 |
+
'[SHOPGATE] Notice: Credit memo was not sent to Shopgate because no product quantity was affected.'
|
404 |
);
|
405 |
$order->save();
|
406 |
return true;
|
407 |
}
|
408 |
|
|
|
|
|
409 |
$cancelShippingCosts = !$shopgateOrder->hasShippedItems($order);
|
410 |
+
|
411 |
/** @var Mage_Sales_Model_Order_Creditmemo $creditMemo */
|
412 |
$creditMemo = $observer->getEvent()->getCreditMemo();
|
413 |
if ($creditMemo) {
|
418 |
}
|
419 |
}
|
420 |
|
421 |
+
$fullCancellation = empty($cancellationItems) || $qtyCancelled == $order->getTotalQtyOrdered();
|
422 |
+
$fullCancellation = $fullCancellation && $cancelShippingCosts;
|
423 |
+
|
424 |
$this->_merchantApi->cancelOrder(
|
425 |
+
$shopgateOrder->getShopgateOrderNumber(),
|
426 |
+
$fullCancellation,
|
427 |
+
$cancellationItems,
|
428 |
+
$cancelShippingCosts,
|
429 |
+
'Order was cancelled in Shopsystem!'
|
430 |
);
|
431 |
|
432 |
Mage::getSingleton('core/session')->addSuccess(
|
433 |
+
Mage::helper('shopgate')->__('[SHOPGATE] Order successfully cancelled at Shopgate.')
|
434 |
);
|
435 |
|
436 |
$shopgateOrder->setIsCancellationSentToShopgate(true);
|
438 |
|
439 |
if (!$shopgateOrder->getIsSentToShopgate() && !$this->_completeShipping($shopgateOrder, $order)) {
|
440 |
$this->_logShopgateError(
|
441 |
+
"! (#{$orderNumber}) not sent to shopgate and shipping not complete",
|
442 |
+
ShopgateLogger::LOGTYPE_ERROR
|
443 |
);
|
444 |
}
|
445 |
} catch (ShopgateMerchantApiException $e) {
|
446 |
|
447 |
+
if ($e->getCode() == '222') {
|
448 |
// order already canceled in shopgate
|
449 |
$shopgateOrder->setIsCancellationSentToShopgate(true);
|
450 |
$shopgateOrder->save();
|
451 |
} else {
|
452 |
// Received error from shopgate server
|
453 |
Mage::getSingleton('core/session')->addError(
|
454 |
+
Mage::helper('shopgate')->__(
|
455 |
+
'[SHOPGATE] An error occured while trying to cancel the order at Shopgate.<br />Please contact Shopgate support.'
|
456 |
)
|
457 |
);
|
458 |
|
459 |
Mage::getSingleton('core/session')->addError("Error: {$e->getCode()} - {$e->getMessage()}");
|
460 |
|
461 |
$this->_logShopgateError(
|
462 |
+
"! (#{$orderNumber}) SMA-Error on cancel order! Message: {$e->getCode()} -
|
463 |
{$e->getMessage()}",
|
464 |
+
ShopgateLogger::LOGTYPE_ERROR
|
465 |
);
|
466 |
$this->_logShopgateError(
|
467 |
+
"! (#{$orderNumber}) SMA-Error on cancel order! Message: {$e->getCode()} -
|
468 |
{$e->getMessage()}",
|
469 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
470 |
);
|
471 |
}
|
472 |
} catch (Exception $e) {
|
473 |
Mage::getSingleton('core/session')->addError(
|
474 |
+
Mage::helper('shopgate')->__(
|
475 |
+
'[SHOPGATE] An unknown error occured!<br />Please contact Shopgate support.'
|
476 |
)
|
477 |
);
|
478 |
|
479 |
$this->_logShopgateError(
|
480 |
+
"! (#{$orderNumber}) SMA-Error on cancel order! Message: {$e->getCode()} -
|
481 |
{$e->getMessage()}",
|
482 |
+
ShopgateLogger::LOGTYPE_ERROR
|
483 |
);
|
484 |
$this->_logShopgateError(
|
485 |
+
"! (#{$orderNumber}) SMA-Error on cancel order! Message: {$e->getCode()} -
|
486 |
{$e->getMessage()}",
|
487 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
488 |
);
|
489 |
}
|
490 |
}
|
491 |
+
|
492 |
+
return $this;
|
493 |
}
|
494 |
|
495 |
/**
|
559 |
$object = Mage::helper('shopgate')->getConfig()->jsonDecode($json_info);
|
560 |
} catch (Exception $e) {
|
561 |
ShopgateLogger::getInstance()->log(
|
562 |
+
"Product ID (#{$id}) Json parse error! Message: {$e->getCode()} - {$e->getMessage()}",
|
563 |
+
ShopgateLogger::LOGTYPE_ERROR
|
564 |
);
|
565 |
return false;
|
566 |
}
|
580 |
*/
|
581 |
public function beforeSalesrulesLoaded($observer)
|
582 |
{
|
583 |
+
if (Mage::helper('shopgate')->isShopgateApiRequest()) {
|
584 |
$collection = $observer->getEvent()->getCollection();
|
585 |
if ($collection instanceof Mage_SalesRule_Model_Resource_Rule_Collection) {
|
586 |
$collection->getSelect()->where(
|
587 |
+
'coupon_type = ' . Mage_SalesRule_Model_Rule::COUPON_TYPE_SPECIFIC .
|
588 |
+
' OR simple_free_shipping IN (1,2)'
|
589 |
);
|
590 |
}
|
591 |
}
|
596 |
*/
|
597 |
public function deleteShopgateCouponProducts($observer)
|
598 |
{
|
599 |
+
if (Mage::helper('shopgate')->isShopgateApiRequest()) {
|
600 |
+
$eventResourceModule = explode('/', $observer->getResourceName());
|
601 |
+
$eventResourceModule = count($eventResourceModule) ? $eventResourceModule[0] : 'default';
|
602 |
/* Prevent collection loading on admin to avoid an error while using flat tables */
|
603 |
+
if ((Mage::app()->getStore()->isAdmin() && !$eventResourceModule == 'cron') ||
|
604 |
+
(!Mage::helper('shopgate')->isShopgateApiRequest() && !$eventResourceModule == 'cron')
|
605 |
) {
|
606 |
return;
|
607 |
}
|
608 |
+
|
609 |
$oldStoreViewId = Mage::app()->getStore()->getId();
|
610 |
+
|
611 |
+
if ($eventResourceModule == 'cron') {
|
612 |
$storeViewIds = Mage::getModel('core/store')->getCollection()->toOptionArray();
|
613 |
} else {
|
614 |
+
$storeViewIds = array(array('value' => $oldStoreViewId, 'label' => 'current'));
|
615 |
}
|
616 |
+
|
617 |
foreach ($storeViewIds as $storeView) {
|
618 |
$storeViewId = $storeView['value'];
|
619 |
Mage::app()->setCurrentStore($storeViewId);
|
620 |
+
|
621 |
$collection = Mage::getModel('catalog/product')
|
622 |
->getResourceCollection()
|
623 |
->addFieldToFilter('type_id', 'virtual');
|
624 |
+
|
625 |
$helper = Mage::helper('shopgate/coupon');
|
626 |
+
|
627 |
foreach ($collection->getItems() as $product) {
|
628 |
if ($helper->isShopgateCoupon($product)) {
|
629 |
Mage::app()->setCurrentStore(0);
|
650 |
$storeViewId = Mage::app()->getRequest()->getParam('storeviewid');
|
651 |
|
652 |
if (Mage::helper('shopgate/config')->isOAuthShopAlreadyRegistered($settings['shop_number'], $storeViewId)) {
|
653 |
+
Mage::throwException(
|
654 |
+
'For the current storeView with id #' . $storeViewId . ' is already a shopnumber set. OAuth registration canceled.'
|
655 |
+
);
|
656 |
}
|
657 |
|
658 |
$config->setStoreViewId($storeViewId);
|
659 |
|
660 |
/* pre save shop_number in proper scope to trigger the save mechanisms scope definition algorithm */
|
661 |
if (!$config->oauthSaveNewShopNumber($settings['shop_number'], $storeViewId)) {
|
662 |
+
Mage::throwExecption(
|
663 |
+
'Could not determine proper scope for new shop with number: #' . $settings['shop_number']
|
664 |
+
);
|
665 |
}
|
666 |
|
667 |
unset($settings['shop_number']);
|
677 |
&& Mage::app()->getRequest()->getParam('action') == 'receive_authorization'
|
678 |
) {
|
679 |
$storeViewId = Mage::app()->getRequest()->getParam('storeviewid');
|
680 |
+
$shopnumber = Mage::getStoreConfig(
|
681 |
+
Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_SHOP_NUMBER,
|
682 |
+
$storeViewId
|
683 |
+
);
|
684 |
|
685 |
$collection = Mage::getModel('core/config_data')
|
686 |
->getCollection()
|
703 |
*/
|
704 |
public function checkForUpdates()
|
705 |
{
|
706 |
+
$model = Mage::getModel('shopgate/feed');
|
707 |
$model->checkUpdate();
|
708 |
}
|
709 |
|
710 |
/**
|
711 |
* @param Varien_Event_Observer $observer
|
712 |
*
|
713 |
+
* @return $this
|
714 |
*/
|
715 |
public function manipulateShipmentForBillsafe(Varien_Event_Observer $observer)
|
716 |
{
|
720 |
$code = $shipment->getOrder()->getPayment()->getMethodInstance()->getCode();
|
721 |
|
722 |
if ($code != Netresearch_Billsafe_Model_Payment::CODE) {
|
723 |
+
return $this;
|
724 |
}
|
725 |
|
726 |
+
$magentoShopgateOrder = Mage::getModel('shopgate/shopgate_order')->load(
|
727 |
+
$shipment->getOrder()->getId(),
|
728 |
+
'order_id'
|
729 |
);
|
730 |
|
731 |
if ($magentoShopgateOrder->getId() == null) {
|
732 |
+
return $this;
|
733 |
}
|
734 |
|
735 |
/**
|
742 |
$order->setIsShopgateOrder(true);
|
743 |
|
744 |
return $this;
|
|
|
745 |
}
|
746 |
|
747 |
return $this;
|
767 |
*/
|
768 |
$config = $observer->getConfig();
|
769 |
$optionTab = $config->getNode('sections/shopgate/groups/option/fields');
|
770 |
+
$devConfig = new Mage_Core_Model_Config_Element(
|
771 |
+
'
|
772 |
<fields>
|
773 |
<customer_number translate="label comment tooltip">
|
774 |
<label>Customer number</label>
|
804 |
</validate>
|
805 |
</api_key>
|
806 |
</fields>
|
807 |
+
'
|
808 |
+
);
|
809 |
|
810 |
$optionTab->extend($devConfig);
|
811 |
|
815 |
* @var Mage_Core_Model_Config_Element $shopgateSection
|
816 |
*/
|
817 |
$shopgateSection = $config->getNode('sections/shopgate/groups');
|
818 |
+
$hiddenGroup = new Mage_Core_Model_Config_Element(
|
819 |
+
'
|
820 |
<hidden translate="label">
|
821 |
<label>Developer Only Section</label>
|
822 |
<sort_order>15</sort_order>
|
835 |
</oauth_access_token>
|
836 |
</fields>
|
837 |
</hidden>
|
838 |
+
'
|
839 |
+
);
|
840 |
$shopgateSection->appendChild($hiddenGroup);
|
841 |
|
842 |
return $this;
|
app/code/community/Shopgate/Framework/Model/Payment/Payone/Abstract.php
CHANGED
@@ -58,11 +58,11 @@ class Shopgate_Framework_Model_Payment_Payone_Abstract extends Shopgate_Framewor
|
|
58 |
protected $_transExists;
|
59 |
|
60 |
/**
|
61 |
-
*
|
62 |
*/
|
63 |
-
public function
|
64 |
{
|
65 |
-
|
66 |
$this->_initConfigs();
|
67 |
}
|
68 |
|
@@ -241,7 +241,7 @@ class Shopgate_Framework_Model_Payment_Payone_Abstract extends Shopgate_Framewor
|
|
241 |
*
|
242 |
* @return Mage_Sales_Model_Order
|
243 |
*/
|
244 |
-
public function manipulateOrderWithPaymentData($order
|
245 |
{
|
246 |
$paymentPayone = $this->getPaymentModel();
|
247 |
|
58 |
protected $_transExists;
|
59 |
|
60 |
/**
|
61 |
+
* Initialize Payone Factory on load
|
62 |
*/
|
63 |
+
public function _construct()
|
64 |
{
|
65 |
+
parent::_construct();
|
66 |
$this->_initConfigs();
|
67 |
}
|
68 |
|
241 |
*
|
242 |
* @return Mage_Sales_Model_Order
|
243 |
*/
|
244 |
+
public function manipulateOrderWithPaymentData($order)
|
245 |
{
|
246 |
$paymentPayone = $this->getPaymentModel();
|
247 |
|
app/code/community/Shopgate/Framework/Model/Payment/Payone/BankAbstract.php
CHANGED
@@ -45,7 +45,7 @@ class Shopgate_Framework_Model_Payment_Payone_BankAbstract extends Shopgate_Fram
|
|
45 |
{
|
46 |
$this->getOrder()->getPayment()->setPayoneOnlinebanktransferType($this->_getConfigCode());
|
47 |
|
48 |
-
return parent::manipulateOrderWithPaymentData();
|
49 |
}
|
50 |
|
51 |
}
|
45 |
{
|
46 |
$this->getOrder()->getPayment()->setPayoneOnlinebanktransferType($this->_getConfigCode());
|
47 |
|
48 |
+
return parent::manipulateOrderWithPaymentData($order);
|
49 |
}
|
50 |
|
51 |
}
|
app/code/community/Shopgate/Framework/Model/Payment/Payone/Cc.php
CHANGED
@@ -49,7 +49,7 @@ class Shopgate_Framework_Model_Payment_Payone_Cc
|
|
49 |
$this->getOrder()->getPayment()->setCcOwner($paymentInfo['credit_card']['holder']);
|
50 |
$this->getOrder()->getPayment()->setCcNumberEnc($paymentInfo['credit_card']['masked_number']);
|
51 |
|
52 |
-
return parent::manipulateOrderWithPaymentData();
|
53 |
}
|
54 |
|
55 |
/**
|
49 |
$this->getOrder()->getPayment()->setCcOwner($paymentInfo['credit_card']['holder']);
|
50 |
$this->getOrder()->getPayment()->setCcNumberEnc($paymentInfo['credit_card']['masked_number']);
|
51 |
|
52 |
+
return parent::manipulateOrderWithPaymentData($order);
|
53 |
}
|
54 |
|
55 |
/**
|
app/code/community/Shopgate/Framework/Model/Payment/Payone/Prp.php
CHANGED
@@ -69,7 +69,7 @@ class Shopgate_Framework_Model_Payment_Payone_Prp
|
|
69 |
$this->getOrder()->getPayment()->setPayoneClearingBankBic(strtoupper($info['clearing_bankbic']));
|
70 |
}
|
71 |
|
72 |
-
return parent::manipulateOrderWithPaymentData();
|
73 |
}
|
74 |
|
75 |
/**
|
69 |
$this->getOrder()->getPayment()->setPayoneClearingBankBic(strtoupper($info['clearing_bankbic']));
|
70 |
}
|
71 |
|
72 |
+
return parent::manipulateOrderWithPaymentData($order);
|
73 |
}
|
74 |
|
75 |
/**
|
app/code/community/Shopgate/Framework/Model/Shopgate/Cart/Validation/Stock/Bundle.php
CHANGED
@@ -45,6 +45,10 @@ class Shopgate_Framework_Model_Shopgate_Cart_Validation_Stock_Bundle
|
|
45 |
$isBuyable = true;
|
46 |
$qtyBuyable = null;
|
47 |
|
|
|
|
|
|
|
|
|
48 |
foreach ($item->getChildren() as $childItem) {
|
49 |
/** @var Mage_Catalog_Model_Product $childProduct */
|
50 |
$childProduct = $childItem->getProduct();
|
45 |
$isBuyable = true;
|
46 |
$qtyBuyable = null;
|
47 |
|
48 |
+
if (null == $product->getShopgateItemNumber()) {
|
49 |
+
$product->setShopgateItemNumber($product->getId());
|
50 |
+
}
|
51 |
+
|
52 |
foreach ($item->getChildren() as $childItem) {
|
53 |
/** @var Mage_Catalog_Model_Product $childProduct */
|
54 |
$childProduct = $childItem->getProduct();
|
app/code/community/Shopgate/Framework/Model/Shopgate/Cart/Validation/Stock/Simple.php
CHANGED
@@ -53,6 +53,10 @@ class Shopgate_Framework_Model_Shopgate_Cart_Validation_Stock_Simple
|
|
53 |
$stockItem = $item->getProduct()->getCustomOption('simple_product')->getProduct()->getStockItem();
|
54 |
}
|
55 |
|
|
|
|
|
|
|
|
|
56 |
$errors = array();
|
57 |
|
58 |
if (Mage::helper('shopgate/config')->getIsMagentoVersionLower1410()) {
|
53 |
$stockItem = $item->getProduct()->getCustomOption('simple_product')->getProduct()->getStockItem();
|
54 |
}
|
55 |
|
56 |
+
if (null == $product->getShopgateItemNumber()) {
|
57 |
+
$product->setShopgateItemNumber($product->getId());
|
58 |
+
}
|
59 |
+
|
60 |
$errors = array();
|
61 |
|
62 |
if (Mage::helper('shopgate/config')->getIsMagentoVersionLower1410()) {
|
app/code/community/Shopgate/Framework/changelog.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
'''Version 2.9.31'''
|
2 |
* improve discount detection
|
3 |
* update to library version 2.9.41
|
1 |
+
'''Version 2.9.32'''
|
2 |
+
* Shopgate dropdown is now visible with proper permissions set
|
3 |
+
* Shopgate menu moved under the Systems dropdown
|
4 |
+
* Fixed issue with PayOne Shopgate order not passed as array
|
5 |
+
* Fixed partial shipping refunds
|
6 |
+
* Fixed a bug with oAuth store connection & URI's with SID
|
7 |
+
* Fixed amount and itemNumber in checkCart
|
8 |
+
* Fixed bug in magento order detail page
|
9 |
+
|
10 |
'''Version 2.9.31'''
|
11 |
* improve discount detection
|
12 |
* update to library version 2.9.41
|
app/code/community/Shopgate/Framework/controllers/Adminhtml/ShopgateController.php
CHANGED
@@ -89,7 +89,8 @@ class Shopgate_Framework_Adminhtml_ShopgateController extends Mage_Adminhtml_Con
|
|
89 |
);
|
90 |
}
|
91 |
ShopgateLogger::getInstance()->log(
|
92 |
-
|
|
|
93 |
);
|
94 |
}
|
95 |
}
|
@@ -258,7 +259,8 @@ class Shopgate_Framework_Adminhtml_ShopgateController extends Mage_Adminhtml_Con
|
|
258 |
$responseData['errors'] = Mage::helper('shopgate')->__($msg);
|
259 |
}
|
260 |
ShopgateLogger::getInstance()->log(
|
261 |
-
|
|
|
262 |
);
|
263 |
}
|
264 |
|
@@ -309,6 +311,7 @@ class Shopgate_Framework_Adminhtml_ShopgateController extends Mage_Adminhtml_Con
|
|
309 |
* Helper method to check if a storeViewId is already in use by a shopgate connection
|
310 |
*
|
311 |
* @param int $storeViewId
|
|
|
312 |
* @return boolean
|
313 |
*/
|
314 |
protected function _isStoreViewAlreadyRegisterdToConnection($storeViewId)
|
@@ -317,9 +320,20 @@ class Shopgate_Framework_Adminhtml_ShopgateController extends Mage_Adminhtml_Con
|
|
317 |
Mage::getSingleton('adminhtml/session')->addError(
|
318 |
Mage::helper('shopgate')->__("The given storeview is already in use by a shopgate connection.")
|
319 |
);
|
|
|
320 |
return true;
|
321 |
}
|
322 |
|
323 |
return false;
|
324 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
}
|
89 |
);
|
90 |
}
|
91 |
ShopgateLogger::getInstance()->log(
|
92 |
+
"Unregister OAuth Shop Connection has failed \"" . (string)$connectionIds . "\"",
|
93 |
+
ShopgateLogger::LOGTYPE_ERROR
|
94 |
);
|
95 |
}
|
96 |
}
|
259 |
$responseData['errors'] = Mage::helper('shopgate')->__($msg);
|
260 |
}
|
261 |
ShopgateLogger::getInstance()->log(
|
262 |
+
"Unregister OAuth Shop Connection with store View Id \"" . (string)$storeViewId
|
263 |
+
. "\" could not get loaded", ShopgateLogger::LOGTYPE_ERROR
|
264 |
);
|
265 |
}
|
266 |
|
311 |
* Helper method to check if a storeViewId is already in use by a shopgate connection
|
312 |
*
|
313 |
* @param int $storeViewId
|
314 |
+
*
|
315 |
* @return boolean
|
316 |
*/
|
317 |
protected function _isStoreViewAlreadyRegisterdToConnection($storeViewId)
|
320 |
Mage::getSingleton('adminhtml/session')->addError(
|
321 |
Mage::helper('shopgate')->__("The given storeview is already in use by a shopgate connection.")
|
322 |
);
|
323 |
+
|
324 |
return true;
|
325 |
}
|
326 |
|
327 |
return false;
|
328 |
}
|
329 |
+
|
330 |
+
/**
|
331 |
+
* ACL fix for SUPEE-6285 changes
|
332 |
+
*
|
333 |
+
* @return bool
|
334 |
+
*/
|
335 |
+
public function _isAllowed()
|
336 |
+
{
|
337 |
+
return Mage::getSingleton('admin/session')->isAllowed('shopgate_menu/manage');
|
338 |
+
}
|
339 |
}
|
app/code/community/Shopgate/Framework/etc/adminhtml.xml
CHANGED
@@ -1,72 +1,66 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
</children>
|
67 |
-
</shopgate>
|
68 |
-
</children>
|
69 |
-
</admin>
|
70 |
-
</resources>
|
71 |
-
</acl>
|
72 |
</config>
|
1 |
<?xml version="1.0"?>
|
2 |
<config>
|
3 |
+
<menu>
|
4 |
+
<shopgate_menu module="shopgate">
|
5 |
+
<title>Shopgate</title>
|
6 |
+
<sort_order>100</sort_order>
|
7 |
+
<children>
|
8 |
+
<manage translate="title" module="shopgate">
|
9 |
+
<title>Manage Connections</title>
|
10 |
+
<action>adminhtml/shopgate/manage</action>
|
11 |
+
<sort_order>20</sort_order>
|
12 |
+
</manage>
|
13 |
+
<support translate="title" module="shopgate">
|
14 |
+
<title>Support</title>
|
15 |
+
<action>adminhtml/shopgate/support</action>
|
16 |
+
<sort_order>40</sort_order>
|
17 |
+
</support>
|
18 |
+
<website translate="title" module="shopgate">
|
19 |
+
<title>www.shopgate.com</title>
|
20 |
+
<action>adminhtml/shopgate/shopgate</action>
|
21 |
+
<sort_order>50</sort_order>
|
22 |
+
</website>
|
23 |
+
</children>
|
24 |
+
</shopgate_menu>
|
25 |
+
</menu>
|
26 |
+
<acl>
|
27 |
+
<resources>
|
28 |
+
<all>
|
29 |
+
<title>Allow Everything</title>
|
30 |
+
</all>
|
31 |
+
<admin>
|
32 |
+
<children>
|
33 |
+
<system>
|
34 |
+
<children>
|
35 |
+
<config>
|
36 |
+
<children>
|
37 |
+
<shopgate>
|
38 |
+
<title>Shopgate</title>
|
39 |
+
</shopgate>
|
40 |
+
</children>
|
41 |
+
</config>
|
42 |
+
</children>
|
43 |
+
</system>
|
44 |
+
<shopgate_menu module="shopgate">
|
45 |
+
<title>Shopgate</title>
|
46 |
+
<sort_order>100</sort_order>
|
47 |
+
<children>
|
48 |
+
<manage translate="title" module="shopgate">
|
49 |
+
<title>Manage Connections</title>
|
50 |
+
<sort_order>10</sort_order>
|
51 |
+
</manage>
|
52 |
+
<support translate="title" module="shopgate">
|
53 |
+
<title>Support</title>
|
54 |
+
<sort_order>20</sort_order>
|
55 |
+
</support>
|
56 |
+
<website translate="title" module="shopgate">
|
57 |
+
<title>www.shopgate.com</title>
|
58 |
+
<sort_order>30</sort_order>
|
59 |
+
</website>
|
60 |
+
</children>
|
61 |
+
</shopgate_menu>
|
62 |
+
</children>
|
63 |
+
</admin>
|
64 |
+
</resources>
|
65 |
+
</acl>
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
</config>
|
app/code/community/Shopgate/Framework/etc/config.xml
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Shopgate_Framework>
|
5 |
-
<version>2.9.
|
6 |
</Shopgate_Framework>
|
7 |
</modules>
|
8 |
<phpunit>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Shopgate_Framework>
|
5 |
+
<version>2.9.32</version>
|
6 |
</Shopgate_Framework>
|
7 |
</modules>
|
8 |
<phpunit>
|
app/code/community/Shopgate/MatrixShipCustom/Helper/Framework/Sales.php
ADDED
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Shopgate GmbH
|
5 |
+
*
|
6 |
+
* URHEBERRECHTSHINWEIS
|
7 |
+
*
|
8 |
+
* Dieses Plugin ist urheberrechtlich geschützt. Es darf ausschließlich von Kunden der Shopgate GmbH
|
9 |
+
* zum Zwecke der eigenen Kommunikation zwischen dem IT-System des Kunden mit dem IT-System der
|
10 |
+
* Shopgate GmbH über www.shopgate.com verwendet werden. Eine darüber hinausgehende Vervielfältigung, Verbreitung,
|
11 |
+
* öffentliche Zugänglichmachung, Bearbeitung oder Weitergabe an Dritte ist nur mit unserer vorherigen
|
12 |
+
* schriftlichen Zustimmung zulässig. Die Regelungen der §§ 69 d Abs. 2, 3 und 69 e UrhG bleiben hiervon unberührt.
|
13 |
+
*
|
14 |
+
* COPYRIGHT NOTICE
|
15 |
+
*
|
16 |
+
* This plugin is the subject of copyright protection. It is only for the use of Shopgate GmbH customers,
|
17 |
+
* for the purpose of facilitating communication between the IT system of the customer and the IT system
|
18 |
+
* of Shopgate GmbH via www.shopgate.com. Any reproduction, dissemination, public propagation, processing or
|
19 |
+
* transfer to third parties is only permitted where we previously consented thereto in writing. The provisions
|
20 |
+
* of paragraph 69 d, sub-paragraphs 2, 3 and paragraph 69, sub-paragraph e of the German Copyright Act shall remain unaffected.
|
21 |
+
*
|
22 |
+
* @author Shopgate GmbH <interfaces@shopgate.com>
|
23 |
+
*/
|
24 |
+
class Shopgate_MatrixShipCustom_Helper_Framework_Sales extends Shopgate_Framework_Helper_Sales
|
25 |
+
{
|
26 |
+
|
27 |
+
/**
|
28 |
+
* Quote setting per COST-492 & MAGENTO-1293 story.
|
29 |
+
* The quote is used by a customer matrix shipping
|
30 |
+
* rewrite that is using the checkout session to
|
31 |
+
* analyze the item data.
|
32 |
+
*
|
33 |
+
* @param Mage_Checkout_Model_Cart $mageCart
|
34 |
+
* @return array
|
35 |
+
*/
|
36 |
+
public function getShippingMethods($mageCart)
|
37 |
+
{
|
38 |
+
Mage::getSingleton('checkout/session')->replaceQuote($mageCart->getQuote());
|
39 |
+
|
40 |
+
return parent::getShippingMethods($mageCart);
|
41 |
+
}
|
42 |
+
}
|
app/code/community/Shopgate/MatrixShipCustom/etc/config.xml
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<config>
|
3 |
+
<modules>
|
4 |
+
<Shopgate_MatrixShipCustom>
|
5 |
+
<version>0.1.0</version>
|
6 |
+
</Shopgate_MatrixShipCustom>
|
7 |
+
</modules>
|
8 |
+
<global>
|
9 |
+
<helpers>
|
10 |
+
<shopgate_matrixShipCustom>
|
11 |
+
<class>Shopgate_MatrixShipCustom_Helper</class>
|
12 |
+
</shopgate_matrixShipCustom>
|
13 |
+
<shopgate>
|
14 |
+
<rewrite>
|
15 |
+
<sales>Shopgate_MatrixShipCustom_Helper_Framework_Sales</sales>
|
16 |
+
</rewrite>
|
17 |
+
</shopgate>
|
18 |
+
</helpers>
|
19 |
+
</global>
|
20 |
+
</config>
|
package.xml
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?xml version="1.0"?>
|
2 |
<package>
|
3 |
<name>shopgate_module</name>
|
4 |
-
<version>2.9.
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://wiki.shopgate.com/Magento/de">Shopgate Plugin</license>
|
7 |
<channel>community</channel>
|
@@ -10,9 +10,9 @@
|
|
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é Kraus</name><user>Shopgate</user><email>andre.kraus83@googlemail.com</email></author></authors>
|
13 |
-
<date>2016-02-
|
14 |
-
<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="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="Version.php" hash="2f45712bb20635ac17d8bdee213819e5"/></dir><dir name="Helper"><dir name="Billsafe"><file name="Order.php" hash="474c2aa15f352224c11c8ab17e921c9d"/></dir><file name="Config.php" hash="b0e489659332274686965e5e8d200d88"/><file name="Coupon.php" hash="519697b13040ddfbc8f460b6034c8779"/><file name="Customer.php" hash="c68047909c0c6e14977336ab6afe2f6b"/><file name="Data.php" hash="d139b614f156a02804dc1d4416973074"/><file name="Debug.php" hash="82c85038046fc9b2f994df18b7f202a6"/><file name="Export.php" hash="02c5dbce181e7489b5d75b20c1584aab"/><dir name="Import"><file name="Order.php" hash="e40ed484faf6f9757bee1970bafaed30"/></dir><file name="Install.php" hash="57f42693c9a6ddb18b8a25a2a5da7cf8"/><dir name="Payment"><file name="Abstract.php" hash="207f16aab8224761b7d91802b9fb10ee"/><file name="Payone.php" hash="ddced5955ff55105d8b3c91e0fcb0778"/><file name="Wspp.php" hash="4214f1d3332cd189cee3df48108ebd8d"/></dir><file name="Sales.php" hash="b09515cf38c29a49df20e242b452c850"/></dir><dir name="Model"><dir name="Carrier"><file name="Fix.php" hash="8dc7a12f501e2b5cc9dc6e6394a99b38"/></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="8cda00444e4c5e1be46e4ff4d5e45cf9"/><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="30123a6fe3e391fca911fed042b256c8"/></dir><file name="Customer.php" hash="2711476c9538a22242d1511649ec77f1"/><dir name="Product"><file name="Csv.php" hash="cc25a5c6a19233b33b1f1ec37837c404"/><file name="Xml.php" hash="33a088547b1a242b0ab330af14fa33ab"/></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="960f3d9991ecca41bd9e8b4ba632e9ea"/></dir><file name="Feed.php" hash="fb99cd7b2b3d94908848b722df666b67"/><dir name="Mobile"><file name="Redirect.php" hash="a76ea12d338dadd418be4dbfcfe9eeb3"/></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="c0437e883a28cf8c67ab67517d0788f3"/><dir name="Payment"><dir name="Abstract"><file name="AbstractPayol.php" hash="0228e80536a7decbbc0a883a4bde0d0d"/></dir><file name="Abstract.php" hash="6fdd4edd829d56525c09357fab95c540"/><file name="Amazon.php" hash="908d7f65ae7a0513ff796b49f8b8a556"/><file name="Authorize.php" hash="f51637fcb5058620b359e066fa1a6dd3"/><file name="Billsafe.php" hash="abc7caf1d47a33353b4b575b237fee70"/><dir name="Cc"><file name="Abstract.php" hash="2b291ac14d9e1e3120416d6aeb4c3487"/><file name="Authn.php" hash="5c4c0d849d8d22dab1e6bf374dfc6c79"/><file name="AuthnAbstract.php" hash="59c3e39376e695ac161d228fc9a3fabf"/><dir name="Authncim"><file name="Gateway.php" hash="1f8df3fe0e50f4729bebfc1d4763b015"/><file name="Method.php" hash="aa6916548a71848ad7c83e4f053bc27e"/></dir><file name="Authncim.php" hash="89f1c2a0bb59d08c895da84c14c325ff"/><file name="Chargeitpro.php" hash="6fd3a2fd42df00831d6e363a23a414f1"/><file name="Usaepay.php" hash="00bd8969c1eceb13eacbb37ed9a1f714"/></dir><file name="Cc.php" hash="3b8b092334fd1c72e824f560b9e33405"/><file name="Express.php" hash="6c8a2ea8ef4cebf40fe35b840f0d41d9"/><file name="Factory.php" hash="c31171980613fc74eff0ce727746f9ef"/><file name="Generic.php" hash="666f06186d1bb96b94af287d221e27c5"/><dir name="Ins"><file name="Payol.php" hash="b6961c4ab1fb9a95ab2d470aeaad8d29"/></dir><file name="Interface.php" hash="151002297bcce208b85bd260c7a25b47"/><dir name="Inv"><file name="Payol.php" hash="6d1c28b2ea2fb2fd63e09712f4533c77"/></dir><file name="MobilePayment.php" hash="59554c65e778831f6add450e0f846f42"/><dir name="Payone"><file name="Abstract.php" hash="e6e34d9b64d8669c131f545b88dffae5"/><file name="BankAbstract.php" hash="fa4ef2c918868001c5f1df97cb4bc400"/><file name="Cc.php" hash="f78795e91c1e6cb9c4cb129d61c4d132"/><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="1165aa67ef8ccdc93a2eb0b7bf03f3d0"/><file name="Prp.php" hash="76079d7e154c3a982b1d117793942c3a"/><file name="Sue.php" hash="31280f2c8abf21f0a582b656fb0d38ad"/></dir><dir name="Pp"><file name="Abstract.php" hash="e6c5afcb0653d2ec3de3bd5d1442b355"/><file name="Wspp.php" hash="42ff0a5d004c82401277dbf00cd9e00f"/></dir><file name="Pp.php" hash="c521bbb32aed313c0170dd6e8361f934"/><dir name="Ppal"><file name="Plus.php" hash="a26adaab47adb3f3b84ff872673b4ed1"/></dir><file name="Router.php" hash="8c5c3d698dbddeec2823d8e2ad284b72"/><file name="Shopgate.php" hash="f0d59e2a4369f7a22e47cf9c3bb9c44a"/><dir name="Simple"><file name="Billsafe.php" hash="d352d66d5101454f4cfec46e4fcaa88a"/><dir name="Cod"><file name="Abstract.php" hash="7bcb77e2906200f8a7576a24d782d541"/><file name="Msp.php" hash="0bb90c25c102ea55ead07312793c523b"/><file name="Native.php" hash="ac835fa8062afb1d3c77e67bc7b87b3c"/><file name="Phoenix107.php" hash="0172683522d4aad72e149a896aad757f"/><file name="Phoenix108.php" hash="b2fc93153eb4e11b0fcf567d66ef298d"/></dir><file name="Cod.php" hash="13329a686494412b304364f0707dd024"/><file name="Invoice.php" hash="a86d8500a0dee3056e56b0ccfb1fae3d"/><dir name="Mws"><file name="Abstract.php" hash="b4a90287eafca0d87087f6dede80dd2c"/><file name="Mws.php" hash="e919cd10f5be16e404a2aac43211005b"/><file name="Mws15.php" hash="db272b23821ea5010fe0e19023b9ca81"/></dir><file name="Mws.php" hash="e19cdfee86d84d80a234138a5f86c5af"/><dir name="Paypal"><file name="Express.php" hash="e2d33dbc600503d9a7541ab53df60662"/><file name="Standard.php" hash="5281ddc90f8f560b6cffa2e97fe08304"/><file name="Standard1400.php" hash="d80d26e8189b12c9796929dfad77f6c8"/></dir><file name="Paypal.php" hash="f9d9361711099812b46ac8335efef454"/><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><file name="Prepay.php" hash="75a238298ab408184e109411a8cc08b0"/><file name="Shopgate.php" hash="5fb1a053ac9b69e5d38bc9f6631ee8f1"/><dir name="Sue"><file name="Abstract.php" hash="d07d6b3a5702b458ed4e5f4574e3ced9"/><file name="Sue118.php" hash="759f4a7e103f9f9f4457aa1d0694c26d"/><file name="Sue300.php" hash="c804244222e5fe67ead8916c5c1ffef1"/></dir><file name="Sue.php" hash="6802dc052e2088957329689b003a16f8"/></dir><file name="Simple.php" hash="e4f0b3cd8282c2661cb19eabdb77d075"/><file name="Usaepay.php" hash="30f17f5a6bf8d0a68b2c14cd1d013885"/><file name="Wspp.php" hash="dbcd289795c112f2f0dbabeda19fbc69"/></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="7a309b69fb20fb6fcae5f3b77f5b7ba9"/></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="f228f0d9274907d4753c40b6ac710ee2"/><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><dir name="Test"><dir name="Controller"><dir name="FrameworkController"><dir name="fixtures"><file name="testPluginNotActive.yaml" hash="9e25f93814834419e9c83995021860c2"/></dir></dir><file name="FrameworkController.php" hash="f2332ffd91ff17cb73382210ba3301d7"/></dir><dir name="Helper"><dir name="Data"><dir name="providers"><file name="testCalculateTaxRate.yaml" hash="2b1fb398f41a0d7706ab9701d77ce978"/></dir></dir><file name="Data.php" hash="e6892cda8a5c0a034657707ae6951317"/><dir name="Payment"><dir name="Wspp"><dir name="providers"><file name="testGetActionByStatus.yaml" hash="7c2d30f7e376da449185e19f3b2a642a"/><file name="testGetPaypalStatus.yaml" hash="8381a01d6d22190b4d1e5c14db984a5d"/></dir></dir><file name="Wspp.php" hash="8bda17bc29a6f006e51ec54063c7b42c"/></dir></dir><dir name="Model"><dir name="Payment"><dir name="Abstract"><dir name="fixtures"><file name="testIsDisabled.yaml" hash="53ed5e65872f20c2328430e0e395e70f"/><file name="testIsEnabled.yaml" hash="53ed5e65872f20c2328430e0e395e70f"/></dir></dir><file name="Abstract.php" hash="7dc37f4b6c2a911a726a0395ae5e49eb"/><dir name="Cc"><dir name="Abstract"><dir name="providers"><file name="testGetCcTypeName.yaml" hash="eaf5dc89060f82581dea1a116c58e5dc"/></dir></dir><file name="Abstract.php" hash="ccf09de30cde5ee26757794e2a509896"/><file name="Authn.php" hash="77306ad6afc450df8a45a1d6a177ff32"/><file name="AuthnAbstract.php" hash="11784c806b9ca43772af538a13dea371"/></dir><file name="Cc.php" hash="8da9d7be59ca374d8d69e587d6c47464"/><dir name="Router"><file name="Exception.php" hash="f7619c0f81e3aec39171687b3fd44185"/><dir name="providers"><file name="testGetModelCombinations.yaml" hash="e74482392a5c0a767903c73628dbfc21"/><file name="testMethodPart.yaml" hash="f9e17d95fba5fed400d4bbfce722212d"/></dir></dir><file name="Router.php" hash="42c755b3d736deb853548db48e2cbe3f"/><file name="RouterAbstract.php" hash="8f3207a8c6db231f72c81d891919cdbd"/><dir name="Simple"><file name="Billsafe.php" hash="82672c2300658c22c6fe0165245b5590"/><dir name="Cod"><file name="Msp.php" hash="d87f920cb0db4267f7246ea5542c2867"/><file name="Native.php" hash="9699b7aa21466cb2014f27d924ac7717"/><file name="Phoenix107.php" hash="c482e1e2a78fc9c5d277d22c3e4271c2"/><file name="Phoenix108.php" hash="f0f6847ea8279388cb12915f7aeb6597"/><dir name="fixtures"><file name="testGetCodMspMethod.yaml" hash="877ac87663c27392723481e813adac94"/><file name="testGetCodNativeMethod.yaml" hash="78dec590236fda34a7baa1681f1f799b"/><file name="testGetCodPhoenixMethod.yaml" hash="d47bddf587fad20d43acec341eb97c55"/><file name="testGetNoCodMethod.yaml" hash="f598847006617b5ed14f83d677739951"/></dir></dir><file name="Cod.php" hash="03391eaa3b2233c8d51a020e09dacde4"/><file name="Invoice.php" hash="08161a51fab47b14b652da12819337bf"/><dir name="Mws"><file name="Mws.php" hash="ec0f5f5b20656367416e505213439819"/><file name="Mws15.php" hash="06b3ada52a543d31bbf877032450368e"/></dir><file name="Mws.php" hash="9645cc9098c989424644de6b2f8bcfbd"/><dir name="Paypal"><file name="Express.php" hash="23da162636ff6ccca1e703b1967c14cf"/><dir name="fixtures"><file name="testGetPpExpressMethod.yaml" hash="304d7be2dcefedfe925695b85ead1ef7"/><file name="testGetPpStandardMethod.yaml" hash="79830109fcd1f32140f97cfd0caf4ab3"/></dir></dir><file name="Paypal.php" hash="cce4b99dcf9ee10621af4c6b24538a8e"/><dir name="Prepay"><file name="Checkmo.php" hash="b4bf41747b9e20c76d22f39fdafe6318"/><file name="Native.php" hash="dd31b6d04518750a1d03a7f9b85510f0"/><file name="Phoenix.php" hash="c8c7a408d8bf13917083826eed369f12"/><dir name="fixtures"><file name="testGetAllPrepayEnabled.yaml" hash="f4fd365d15f4a72a27056abc86254d32"/><file name="testGetPrepayNativeMethod.yaml" hash="10fc3dd5a6ea63187eb11c0f8dfcdce4"/><file name="testGetPrepayPhoenixMethod.yaml" hash="e8e4ab7d7e995aea4e701e2aac72c9c0"/></dir></dir><file name="Prepay.php" hash="410b8d87c6c3c2d726cc3a4dd59e85fb"/><file name="Shopgate.php" hash="744c9424ad4db0917e437140662c6298"/><dir name="Sue"><file name="Sue118.php" hash="25daa525b66855a9c617d68f58818e1f"/><file name="Sue300.php" hash="38e4539f1adb242b67920f43d93a15fc"/></dir><file name="Sue.php" hash="c6b29f00dbf3e4177b1bc7da20c0af5c"/></dir><file name="Simple.php" hash="8f3d015f1f8e32ddef4ae60c681d6280"/></dir><file name="Utility.php" hash="f7b78aefc882670c716cbcf5cac4dc99"/></dir></dir><file name="changelog.txt" hash="4ffb2fea4bdec8e755528405e2a67fd7"/><dir name="controllers"><dir name="Adminhtml"><file name="ShopgateController.php" hash="cd2305edb0348a15f956d20d39433778"/></dir><file name="FrameworkController.php" hash="2152205bd372d999a56eb378ed810a8d"/></dir><dir name="etc"><file name="adminhtml.xml" hash="d1f345ca5fc8b0619234f9c270fb84a7"/><file name="config.xml" hash="1683a4189fb64738ae40887d4dc7c203"/><file name="system.xml" hash="b715fdbd76766e347c0f30a8122e58ed"/></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="dc6770e94c31d2f79915528c0993d546"/></dir></dir></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Shopgate_Framework.csv" hash="e842a47237b2e613a22e5584108b8b2a"/></dir><dir name="de_CH"><file name="Shopgate_Framework.csv" hash="e842a47237b2e613a22e5584108b8b2a"/></dir><dir name="de_AT"><file name="Shopgate_Framework.csv" hash="664a8dc7470fd9675ca7a67f2bcd1325"/></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="7ff2c12f8b7c23542f3ff49b451720a8"/><file name="link_tag.html" hash="f7c53599b55d442fd49f970bd41eb2a4"/><file name="mobile_header.html" hash="17616650e160eaccd24e25729396c5a9"/></dir><file name="changelog.txt" hash="445a35adf4aabcf8232daec8c5276b42"/><dir name="classes"><file name="apis.php" hash="8d89fdce7a3eeca342a5165bb9a2530b"/><file name="configuration.php" hash="264d43767346d16fd8c1fcfdcbec0ca2"/><file name="core.php" hash="cf1c8146f9e86d052c2abcfad4e821a5"/><file name="customers.php" hash="24c9dbbcafe379c224fcce4b02d58ad2"/><file name="external_orders.php" hash="7239071113b5decc70ec9672bf6fc3fe"/><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 name="redirect"><file name="KeywordsManager.php" hash="6cf7278e7aed1a072c9b94fd99e585a5"/><file name="KeywordsManagerInterface.php" hash="32cda83161084b4f5904eeb5f50a6547"/><file name="LinkBuilder.php" hash="8d6c7225dc90fde0c62c65e24e618bd8"/><file name="LinkBuilderInterface.php" hash="a755af7b57fda9b9ff1564a0059529d1"/><file name="MobileRedirect.php" hash="1f58517a45d5d8814514001b1e690312"/><file name="MobileRedirectInterface.php" hash="80b8da18c8bf498461c2b8e183bce326"/><file name="Redirector.php" hash="1a06dc19980c8a51ae0cdbed4d04322d"/><file name="RedirectorInterface.php" hash="9a11e4e85b6005029458a035e4295935"/><file name="SettingsManager.php" hash="d1b1722715688da2a095fba8c607f45c"/><file name="SettingsManagerInterface.php" hash="ae16aa5ea4df7f0def80711f8cc14f70"/><file name="TagsGenerator.php" hash="de6e73da61a282d24226065671d67d6b"/><file name="TagsGeneratorInterface.php" hash="1a5c500631331a4ae970d2a442e5d7e2"/><file name="TemplateParser.php" hash="1e087c9ba5720c9065702d9ebfc5723a"/><file name="TemplateParserInterface.php" hash="d6897cd9e5622d1991bb7aab678e37f8"/></dir></dir><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><file name="items.php" hash="107f9bc5fcc0c0dbfe568a3b8235107c"/><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="340804eb0f2ba6bcb6b05311b8bb1f11"/><dir name="catalog"><file name="Attribute.php" hash="28d8f3bc6c416661d1eaa77726ba7009"/><file name="AttributeGroup.php" hash="0270086ec8006ee8231c6b0baa8d6034"/><file name="Category.php" hash="beba58d2796cf7b4ca08ce68de65415b"/><file name="CategoryPath.php" hash="475869aef74c567c8569ee9953210faa"/><file name="Identifier.php" hash="d9a3b16d1fcdec641ca2b0fd77fbd625"/><file name="Input.php" hash="77df45fd89aec19565a5fae7178205bb"/><file name="Manufacturer.php" hash="e45f534f5f6acad118be24ffc63a0460"/><file name="Option.php" hash="fd95fe72bff985ae0b2861da115e2468"/><file name="Price.php" hash="3cb25372ae58bd0c71b342f9ef2dca73"/><file name="Product.php" hash="7e7c49e10b379eae5d0141efe2c91305"/><file name="Property.php" hash="5967f0403a606a27ea4fec71a8402327"/><file name="Relation.php" hash="263cde539af500af911baec4e354079e"/><file name="Review.php" hash="72c94cb1f2a54bafffdb5672d87ecd4d"/><file name="Shipping.php" hash="1fe425496bd9720dc18bd076e56aca9e"/><file name="Stock.php" hash="4e645877e778ec8d02ae98262bfa9663"/><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="c9319f2a82811239313e328eaf7e2094"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><dir name="redirect"><file name="DeeplinkSuffix.php" hash="e6aebbb49db1b3b1d0bbb3a5f8e52927"/><file name="DeeplinkSuffixValue.php" hash="809684ff8f7d588d39060f5469e2c3b0"/><file name="DeeplinkSuffixValueDisabled.php" hash="83ff30aeeaf40c070f71b29b7f2bbbd8"/><file name="DeeplinkSuffixValueUnset.php" hash="1275996c7d012acfa3fbd6cbe43b08b3"/><file name="HtmlTag.php" hash="e5494a280dd090e3869445431e6c8c2a"/><file name="HtmlTagAttribute.php" hash="368c63b7c3043f7ae0bee107527152de"/><file name="HtmlTagVariable.php" hash="1484f93ec0e69b3f94313e4cac849e0f"/></dir></dir><file name="orders.php" hash="fc81f6fb02ccfd65df7b9cc4ba01b046"/><file name="redirect.php" hash="75ba604b4a9885e861a96683e566ac5c"/></dir><dir name="config"><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="index.php" hash="de19abc78063ea9a4112964c79946f1c"/><file name="shopgate.php" hash="248033be19931f7eccdc40d12e59d1bf"/><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="tests"><dir name="classes"><dir name="helper"><dir name="redirect"><file name="TemplateParserTest.php" hash="aa7aea33f78f0fda58437c83421d2f31"/></dir></dir></dir></dir><dir name="vendors"><file name="2d_is.php" hash="087decaca87ee85d548d8caaa43f1212"/><file name="BSD_license.txt" hash="2df4dd93533ca2c19f6f2d601bc3e0d5"/><file name="JSON.php" hash="cbb23366cd8c20319292458a87dc2870"/><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="608ba89093ef89e1c182cd6085dbf3b1"/></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="8bab300fb25a48cd2c8119ae1942ed54"/></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><required><php><min>5.3.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.32</version>
|
5 |
<stability>stable</stability>
|
6 |
<license uri="http://wiki.shopgate.com/Magento/de">Shopgate Plugin</license>
|
7 |
<channel>community</channel>
|
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é Kraus</name><user>Shopgate</user><email>andre.kraus83@googlemail.com</email></author></authors>
|
13 |
+
<date>2016-02-17</date>
|
14 |
+
<time>11:18:21</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="CartRules"><dir name="Model"><file name="Observer.php" hash="8f41806fae0c7fa56abc9416daf0c5bb"/><dir name="Shopgate"><file name="Plugin.php" hash="dab0feb39735b56add7244b48429909e"/></dir></dir><dir name="etc"><file name="config.xml" hash="3c05cbab517147e2ea948d9376095f0c"/></dir></dir><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="01644c4114edd24cab5965e20252e3cf"/><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="b0e489659332274686965e5e8d200d88"/><file name="Coupon.php" hash="519697b13040ddfbc8f460b6034c8779"/><file name="Customer.php" hash="c68047909c0c6e14977336ab6afe2f6b"/><file name="Data.php" hash="430fdcef33670d03d9c511e14345bf02"/><file name="Debug.php" hash="82c85038046fc9b2f994df18b7f202a6"/><file name="Export.php" hash="02c5dbce181e7489b5d75b20c1584aab"/><dir name="Import"><file name="Order.php" hash="e40ed484faf6f9757bee1970bafaed30"/></dir><file name="Install.php" hash="57f42693c9a6ddb18b8a25a2a5da7cf8"/><dir name="Payment"><file name="Abstract.php" hash="207f16aab8224761b7d91802b9fb10ee"/><file name="Payone.php" hash="ddced5955ff55105d8b3c91e0fcb0778"/><file name="Wspp.php" hash="4214f1d3332cd189cee3df48108ebd8d"/></dir><file name="Sales.php" hash="bc9439ce868f7597f64815befddb6950"/></dir><dir name="Model"><dir name="Carrier"><file name="Fix.php" hash="8dc7a12f501e2b5cc9dc6e6394a99b38"/></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="8cda00444e4c5e1be46e4ff4d5e45cf9"/><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="30123a6fe3e391fca911fed042b256c8"/></dir><file name="Customer.php" hash="2711476c9538a22242d1511649ec77f1"/><dir name="Product"><file name="Csv.php" hash="cc25a5c6a19233b33b1f1ec37837c404"/><file name="Xml.php" hash="33a088547b1a242b0ab330af14fa33ab"/></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="960f3d9991ecca41bd9e8b4ba632e9ea"/></dir><file name="Feed.php" hash="fb99cd7b2b3d94908848b722df666b67"/><dir name="Mobile"><file name="Redirect.php" hash="a76ea12d338dadd418be4dbfcfe9eeb3"/></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="29d35fb1ffc905ccd06aaa548ef94d98"/><dir name="Payment"><dir name="Abstract"><file name="AbstractPayol.php" hash="0228e80536a7decbbc0a883a4bde0d0d"/></dir><file name="Abstract.php" hash="6fdd4edd829d56525c09357fab95c540"/><file name="Amazon.php" hash="908d7f65ae7a0513ff796b49f8b8a556"/><file name="Authorize.php" hash="f51637fcb5058620b359e066fa1a6dd3"/><file name="Billsafe.php" hash="abc7caf1d47a33353b4b575b237fee70"/><dir name="Cc"><file name="Abstract.php" hash="2b291ac14d9e1e3120416d6aeb4c3487"/><file name="Authn.php" hash="5c4c0d849d8d22dab1e6bf374dfc6c79"/><file name="AuthnAbstract.php" hash="59c3e39376e695ac161d228fc9a3fabf"/><dir name="Authncim"><file name="Gateway.php" hash="1f8df3fe0e50f4729bebfc1d4763b015"/><file name="Method.php" hash="aa6916548a71848ad7c83e4f053bc27e"/></dir><file name="Authncim.php" hash="89f1c2a0bb59d08c895da84c14c325ff"/><file name="Chargeitpro.php" hash="6fd3a2fd42df00831d6e363a23a414f1"/><file name="Usaepay.php" hash="00bd8969c1eceb13eacbb37ed9a1f714"/></dir><file name="Cc.php" hash="3b8b092334fd1c72e824f560b9e33405"/><file name="Express.php" hash="6c8a2ea8ef4cebf40fe35b840f0d41d9"/><file name="Factory.php" hash="c31171980613fc74eff0ce727746f9ef"/><file name="Generic.php" hash="666f06186d1bb96b94af287d221e27c5"/><dir name="Ins"><file name="Payol.php" hash="b6961c4ab1fb9a95ab2d470aeaad8d29"/></dir><file name="Interface.php" hash="151002297bcce208b85bd260c7a25b47"/><dir name="Inv"><file name="Payol.php" hash="6d1c28b2ea2fb2fd63e09712f4533c77"/></dir><file name="MobilePayment.php" hash="59554c65e778831f6add450e0f846f42"/><dir name="Payone"><file name="Abstract.php" hash="fcc75447f2a2053d720289fb27b3c476"/><file name="BankAbstract.php" hash="0fdc5847e23c2aa4a9e4fee535d1df4c"/><file name="Cc.php" hash="fa47b35c9455bba74d2ef325835ab865"/><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="1165aa67ef8ccdc93a2eb0b7bf03f3d0"/><file name="Prp.php" hash="367e84cc2089596dba96c5a7e9ae1723"/><file name="Sue.php" hash="31280f2c8abf21f0a582b656fb0d38ad"/></dir><dir name="Pp"><file name="Abstract.php" hash="e6c5afcb0653d2ec3de3bd5d1442b355"/><file name="Wspp.php" hash="42ff0a5d004c82401277dbf00cd9e00f"/></dir><file name="Pp.php" hash="c521bbb32aed313c0170dd6e8361f934"/><dir name="Ppal"><file name="Plus.php" hash="a26adaab47adb3f3b84ff872673b4ed1"/></dir><file name="Router.php" hash="8c5c3d698dbddeec2823d8e2ad284b72"/><file name="Shopgate.php" hash="f0d59e2a4369f7a22e47cf9c3bb9c44a"/><dir name="Simple"><file name="Billsafe.php" hash="d352d66d5101454f4cfec46e4fcaa88a"/><dir name="Cod"><file name="Abstract.php" hash="7bcb77e2906200f8a7576a24d782d541"/><file name="Msp.php" hash="0bb90c25c102ea55ead07312793c523b"/><file name="Native.php" hash="ac835fa8062afb1d3c77e67bc7b87b3c"/><file name="Phoenix107.php" hash="0172683522d4aad72e149a896aad757f"/><file name="Phoenix108.php" hash="b2fc93153eb4e11b0fcf567d66ef298d"/></dir><file name="Cod.php" hash="13329a686494412b304364f0707dd024"/><file name="Invoice.php" hash="a86d8500a0dee3056e56b0ccfb1fae3d"/><dir name="Mws"><file name="Abstract.php" hash="b4a90287eafca0d87087f6dede80dd2c"/><file name="Mws.php" hash="e919cd10f5be16e404a2aac43211005b"/><file name="Mws15.php" hash="db272b23821ea5010fe0e19023b9ca81"/></dir><file name="Mws.php" hash="e19cdfee86d84d80a234138a5f86c5af"/><dir name="Paypal"><file name="Express.php" hash="e2d33dbc600503d9a7541ab53df60662"/><file name="Standard.php" hash="5281ddc90f8f560b6cffa2e97fe08304"/><file name="Standard1400.php" hash="d80d26e8189b12c9796929dfad77f6c8"/></dir><file name="Paypal.php" hash="f9d9361711099812b46ac8335efef454"/><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><file name="Prepay.php" hash="75a238298ab408184e109411a8cc08b0"/><file name="Shopgate.php" hash="5fb1a053ac9b69e5d38bc9f6631ee8f1"/><dir name="Sue"><file name="Abstract.php" hash="d07d6b3a5702b458ed4e5f4574e3ced9"/><file name="Sue118.php" hash="759f4a7e103f9f9f4457aa1d0694c26d"/><file name="Sue300.php" hash="c804244222e5fe67ead8916c5c1ffef1"/></dir><file name="Sue.php" hash="6802dc052e2088957329689b003a16f8"/></dir><file name="Simple.php" hash="e4f0b3cd8282c2661cb19eabdb77d075"/><file name="Usaepay.php" hash="30f17f5a6bf8d0a68b2c14cd1d013885"/><file name="Wspp.php" hash="dbcd289795c112f2f0dbabeda19fbc69"/></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="7a309b69fb20fb6fcae5f3b77f5b7ba9"/></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="13180790586d19b04aa1cfcf1f88f0c8"/><file name="Simple.php" hash="190017285cd454ec98129c4dc9651781"/></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="f228f0d9274907d4753c40b6ac710ee2"/><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><dir name="Test"><dir name="Controller"><dir name="FrameworkController"><dir name="fixtures"><file name="testPluginNotActive.yaml" hash="9e25f93814834419e9c83995021860c2"/></dir></dir><file name="FrameworkController.php" hash="f2332ffd91ff17cb73382210ba3301d7"/></dir><dir name="Helper"><dir name="Data"><dir name="providers"><file name="testCalculateTaxRate.yaml" hash="2b1fb398f41a0d7706ab9701d77ce978"/></dir></dir><file name="Data.php" hash="e6892cda8a5c0a034657707ae6951317"/><dir name="Payment"><dir name="Wspp"><dir name="providers"><file name="testGetActionByStatus.yaml" hash="7c2d30f7e376da449185e19f3b2a642a"/><file name="testGetPaypalStatus.yaml" hash="8381a01d6d22190b4d1e5c14db984a5d"/></dir></dir><file name="Wspp.php" hash="8bda17bc29a6f006e51ec54063c7b42c"/></dir></dir><dir name="Model"><dir name="Payment"><dir name="Abstract"><dir name="fixtures"><file name="testIsDisabled.yaml" hash="53ed5e65872f20c2328430e0e395e70f"/><file name="testIsEnabled.yaml" hash="53ed5e65872f20c2328430e0e395e70f"/></dir></dir><file name="Abstract.php" hash="7dc37f4b6c2a911a726a0395ae5e49eb"/><dir name="Cc"><dir name="Abstract"><dir name="providers"><file name="testGetCcTypeName.yaml" hash="eaf5dc89060f82581dea1a116c58e5dc"/></dir></dir><file name="Abstract.php" hash="ccf09de30cde5ee26757794e2a509896"/><file name="Authn.php" hash="77306ad6afc450df8a45a1d6a177ff32"/><file name="AuthnAbstract.php" hash="11784c806b9ca43772af538a13dea371"/></dir><file name="Cc.php" hash="8da9d7be59ca374d8d69e587d6c47464"/><dir name="Router"><file name="Exception.php" hash="f7619c0f81e3aec39171687b3fd44185"/><dir name="providers"><file name="testGetModelCombinations.yaml" hash="e74482392a5c0a767903c73628dbfc21"/><file name="testMethodPart.yaml" hash="f9e17d95fba5fed400d4bbfce722212d"/></dir></dir><file name="Router.php" hash="42c755b3d736deb853548db48e2cbe3f"/><file name="RouterAbstract.php" hash="8f3207a8c6db231f72c81d891919cdbd"/><dir name="Simple"><file name="Billsafe.php" hash="82672c2300658c22c6fe0165245b5590"/><dir name="Cod"><file name="Msp.php" hash="d87f920cb0db4267f7246ea5542c2867"/><file name="Native.php" hash="9699b7aa21466cb2014f27d924ac7717"/><file name="Phoenix107.php" hash="c482e1e2a78fc9c5d277d22c3e4271c2"/><file name="Phoenix108.php" hash="f0f6847ea8279388cb12915f7aeb6597"/><dir name="fixtures"><file name="testGetCodMspMethod.yaml" hash="877ac87663c27392723481e813adac94"/><file name="testGetCodNativeMethod.yaml" hash="78dec590236fda34a7baa1681f1f799b"/><file name="testGetCodPhoenixMethod.yaml" hash="d47bddf587fad20d43acec341eb97c55"/><file name="testGetNoCodMethod.yaml" hash="f598847006617b5ed14f83d677739951"/></dir></dir><file name="Cod.php" hash="03391eaa3b2233c8d51a020e09dacde4"/><file name="Invoice.php" hash="08161a51fab47b14b652da12819337bf"/><dir name="Mws"><file name="Mws.php" hash="ec0f5f5b20656367416e505213439819"/><file name="Mws15.php" hash="06b3ada52a543d31bbf877032450368e"/></dir><file name="Mws.php" hash="9645cc9098c989424644de6b2f8bcfbd"/><dir name="Paypal"><file name="Express.php" hash="23da162636ff6ccca1e703b1967c14cf"/><dir name="fixtures"><file name="testGetPpExpressMethod.yaml" hash="304d7be2dcefedfe925695b85ead1ef7"/><file name="testGetPpStandardMethod.yaml" hash="79830109fcd1f32140f97cfd0caf4ab3"/></dir></dir><file name="Paypal.php" hash="cce4b99dcf9ee10621af4c6b24538a8e"/><dir name="Prepay"><file name="Checkmo.php" hash="b4bf41747b9e20c76d22f39fdafe6318"/><file name="Native.php" hash="dd31b6d04518750a1d03a7f9b85510f0"/><file name="Phoenix.php" hash="c8c7a408d8bf13917083826eed369f12"/><dir name="fixtures"><file name="testGetAllPrepayEnabled.yaml" hash="f4fd365d15f4a72a27056abc86254d32"/><file name="testGetPrepayNativeMethod.yaml" hash="10fc3dd5a6ea63187eb11c0f8dfcdce4"/><file name="testGetPrepayPhoenixMethod.yaml" hash="e8e4ab7d7e995aea4e701e2aac72c9c0"/></dir></dir><file name="Prepay.php" hash="410b8d87c6c3c2d726cc3a4dd59e85fb"/><file name="Shopgate.php" hash="744c9424ad4db0917e437140662c6298"/><dir name="Sue"><file name="Sue118.php" hash="25daa525b66855a9c617d68f58818e1f"/><file name="Sue300.php" hash="38e4539f1adb242b67920f43d93a15fc"/></dir><file name="Sue.php" hash="c6b29f00dbf3e4177b1bc7da20c0af5c"/></dir><file name="Simple.php" hash="8f3d015f1f8e32ddef4ae60c681d6280"/></dir><file name="Utility.php" hash="f7b78aefc882670c716cbcf5cac4dc99"/></dir></dir><file name="changelog.txt" hash="72f5f5477af74c2177d2d0121fb4209d"/><dir name="controllers"><dir name="Adminhtml"><file name="ShopgateController.php" hash="b1bb6a24af72d5d151a6773be640c9e9"/></dir><file name="FrameworkController.php" hash="2152205bd372d999a56eb378ed810a8d"/></dir><dir name="etc"><file name="adminhtml.xml" hash="ed53de480c8a0642b7ae75c59f1ff8df"/><file name="config.xml" hash="646011dcf4b497dec3f5a9dd509efe76"/><file name="system.xml" hash="b715fdbd76766e347c0f30a8122e58ed"/></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="dc6770e94c31d2f79915528c0993d546"/></dir></dir></dir><dir name="MatrixShipCustom"><dir name="Helper"><dir name="Framework"><file name="Sales.php" hash="7c602ea5cc5c9577a49e1cdacf7ac24e"/></dir></dir><dir name="etc"><file name="config.xml" hash="5c71dcceb01436f1c52dd59cd95dad80"/></dir></dir></dir></target><target name="magelocale"><dir name="de_DE"><file name="Shopgate_Framework.csv" hash="e842a47237b2e613a22e5584108b8b2a"/></dir><dir name="de_CH"><file name="Shopgate_Framework.csv" hash="e842a47237b2e613a22e5584108b8b2a"/></dir><dir name="de_AT"><file name="Shopgate_Framework.csv" hash="664a8dc7470fd9675ca7a67f2bcd1325"/></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="7ff2c12f8b7c23542f3ff49b451720a8"/><file name="link_tag.html" hash="f7c53599b55d442fd49f970bd41eb2a4"/><file name="mobile_header.html" hash="17616650e160eaccd24e25729396c5a9"/></dir><file name="changelog.txt" hash="445a35adf4aabcf8232daec8c5276b42"/><dir name="classes"><file name="apis.php" hash="8d89fdce7a3eeca342a5165bb9a2530b"/><file name="configuration.php" hash="264d43767346d16fd8c1fcfdcbec0ca2"/><file name="core.php" hash="cf1c8146f9e86d052c2abcfad4e821a5"/><file name="customers.php" hash="24c9dbbcafe379c224fcce4b02d58ad2"/><file name="external_orders.php" hash="7239071113b5decc70ec9672bf6fc3fe"/><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 name="redirect"><file name="KeywordsManager.php" hash="6cf7278e7aed1a072c9b94fd99e585a5"/><file name="KeywordsManagerInterface.php" hash="32cda83161084b4f5904eeb5f50a6547"/><file name="LinkBuilder.php" hash="8d6c7225dc90fde0c62c65e24e618bd8"/><file name="LinkBuilderInterface.php" hash="a755af7b57fda9b9ff1564a0059529d1"/><file name="MobileRedirect.php" hash="1f58517a45d5d8814514001b1e690312"/><file name="MobileRedirectInterface.php" hash="80b8da18c8bf498461c2b8e183bce326"/><file name="Redirector.php" hash="1a06dc19980c8a51ae0cdbed4d04322d"/><file name="RedirectorInterface.php" hash="9a11e4e85b6005029458a035e4295935"/><file name="SettingsManager.php" hash="d1b1722715688da2a095fba8c607f45c"/><file name="SettingsManagerInterface.php" hash="ae16aa5ea4df7f0def80711f8cc14f70"/><file name="TagsGenerator.php" hash="de6e73da61a282d24226065671d67d6b"/><file name="TagsGeneratorInterface.php" hash="1a5c500631331a4ae970d2a442e5d7e2"/><file name="TemplateParser.php" hash="1e087c9ba5720c9065702d9ebfc5723a"/><file name="TemplateParserInterface.php" hash="d6897cd9e5622d1991bb7aab678e37f8"/></dir></dir><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/><file name="items.php" hash="107f9bc5fcc0c0dbfe568a3b8235107c"/><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="340804eb0f2ba6bcb6b05311b8bb1f11"/><dir name="catalog"><file name="Attribute.php" hash="28d8f3bc6c416661d1eaa77726ba7009"/><file name="AttributeGroup.php" hash="0270086ec8006ee8231c6b0baa8d6034"/><file name="Category.php" hash="beba58d2796cf7b4ca08ce68de65415b"/><file name="CategoryPath.php" hash="475869aef74c567c8569ee9953210faa"/><file name="Identifier.php" hash="d9a3b16d1fcdec641ca2b0fd77fbd625"/><file name="Input.php" hash="77df45fd89aec19565a5fae7178205bb"/><file name="Manufacturer.php" hash="e45f534f5f6acad118be24ffc63a0460"/><file name="Option.php" hash="fd95fe72bff985ae0b2861da115e2468"/><file name="Price.php" hash="3cb25372ae58bd0c71b342f9ef2dca73"/><file name="Product.php" hash="7e7c49e10b379eae5d0141efe2c91305"/><file name="Property.php" hash="5967f0403a606a27ea4fec71a8402327"/><file name="Relation.php" hash="263cde539af500af911baec4e354079e"/><file name="Review.php" hash="72c94cb1f2a54bafffdb5672d87ecd4d"/><file name="Shipping.php" hash="1fe425496bd9720dc18bd076e56aca9e"/><file name="Stock.php" hash="4e645877e778ec8d02ae98262bfa9663"/><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="c9319f2a82811239313e328eaf7e2094"/><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><dir name="redirect"><file name="DeeplinkSuffix.php" hash="e6aebbb49db1b3b1d0bbb3a5f8e52927"/><file name="DeeplinkSuffixValue.php" hash="809684ff8f7d588d39060f5469e2c3b0"/><file name="DeeplinkSuffixValueDisabled.php" hash="83ff30aeeaf40c070f71b29b7f2bbbd8"/><file name="DeeplinkSuffixValueUnset.php" hash="1275996c7d012acfa3fbd6cbe43b08b3"/><file name="HtmlTag.php" hash="e5494a280dd090e3869445431e6c8c2a"/><file name="HtmlTagAttribute.php" hash="368c63b7c3043f7ae0bee107527152de"/><file name="HtmlTagVariable.php" hash="1484f93ec0e69b3f94313e4cac849e0f"/></dir></dir><file name="orders.php" hash="fc81f6fb02ccfd65df7b9cc4ba01b046"/><file name="redirect.php" hash="75ba604b4a9885e861a96683e566ac5c"/></dir><dir name="config"><file name="index.php" hash="bfc5021f1ee9b67f78a0fc9fdab6c558"/></dir><file name="index.php" hash="de19abc78063ea9a4112964c79946f1c"/><file name="shopgate.php" hash="248033be19931f7eccdc40d12e59d1bf"/><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="tests"><dir name="classes"><dir name="helper"><dir name="redirect"><file name="TemplateParserTest.php" hash="aa7aea33f78f0fda58437c83421d2f31"/></dir></dir></dir></dir><dir name="vendors"><file name="2d_is.php" hash="087decaca87ee85d548d8caaa43f1212"/><file name="BSD_license.txt" hash="2df4dd93533ca2c19f6f2d601bc3e0d5"/><file name="JSON.php" hash="cbb23366cd8c20319292458a87dc2870"/><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="608ba89093ef89e1c182cd6085dbf3b1"/></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="8bab300fb25a48cd2c8119ae1942ed54"/></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><required><php><min>5.3.0</min><max>6.0.0</max></php></required></dependencies>
|
18 |
</package>
|