Version Notes
Shopgate Modul
Download this release
Release Info
Developer | Stephan Recknagel |
Extension | shopgate_module |
Version | 2.9.36 |
Comparing to | |
See all releases |
Code changes from version 2.9.35 to 2.9.36
- app/code/community/Shopgate/Framework/Helper/Coupon.php +212 -14
- app/code/community/Shopgate/Framework/Model/Config.php +15 -0
- app/code/community/Shopgate/Framework/Model/Observer.php +27 -15
- app/code/community/Shopgate/Framework/Model/Shopgate/Plugin.php +22 -68
- app/code/community/Shopgate/Framework/Test/Model/ObserverTest.php +100 -0
- app/code/community/Shopgate/Framework/changelog.txt +4 -0
- app/code/community/Shopgate/Framework/etc/config.xml +2 -1
- app/code/community/Shopgate/Framework/etc/system.xml +10 -0
- app/locale/de_AT/Shopgate_Framework.csv +2 -0
- app/locale/de_CH/Shopgate_Framework.csv +2 -0
- app/locale/de_DE/Shopgate_Framework.csv +2 -0
- lib/Shopgate/changelog.txt +5 -0
- lib/Shopgate/classes/core.php +1 -1
- lib/Shopgate/classes/helper/redirect/KeywordsManager.php +12 -9
- lib/Shopgate/classes/helper/redirect/LinkBuilder.php +2 -2
- lib/Shopgate/classes/orders.php +28 -22
- lib/Shopgate/tests/classes/helper/redirect/KeywordsManagerTest.php +129 -0
- package.xml +4 -4
app/code/community/Shopgate/Framework/Helper/Coupon.php
CHANGED
@@ -22,35 +22,33 @@
|
|
22 |
*/
|
23 |
|
24 |
/**
|
25 |
-
*
|
26 |
-
* Date: 16.05.14
|
27 |
-
* Time: 18:07
|
28 |
-
* E-Mail: steffen.meuser@shopgate.com
|
29 |
-
*/
|
30 |
-
|
31 |
-
/**
|
32 |
-
* config helper
|
33 |
*
|
34 |
-
* @author
|
35 |
-
* @package
|
36 |
*/
|
37 |
class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
38 |
{
|
39 |
const COUPON_ATTRIUBTE_SET_NAME = 'Shopgate Coupon';
|
40 |
const COUPON_PRODUCT_SKU = 'shopgate-coupon';
|
41 |
|
|
|
|
|
|
|
|
|
|
|
42 |
protected $_attributeSet = null;
|
43 |
|
44 |
/**
|
45 |
* Determines if a product is a Shopgate Coupon
|
46 |
*
|
47 |
* @param Mage_Catalog_Model_Product $product
|
|
|
48 |
* @return boolean
|
49 |
*/
|
50 |
public function isShopgateCoupon(Mage_Catalog_Model_Product $product)
|
51 |
{
|
52 |
-
$attributeSetModel = Mage::getModel(
|
53 |
-
->load($product->getAttributeSetId());
|
54 |
|
55 |
if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
|
56 |
&& $attributeSetModel->getAttributeSetName() == self::COUPON_ATTRIUBTE_SET_NAME
|
@@ -65,6 +63,7 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
|
65 |
* Sets missing product Attributes for virutal product
|
66 |
*
|
67 |
* @param Mage_Catalog_Model_Product $product
|
|
|
68 |
* @return Mage_Catalog_Model_Product
|
69 |
*/
|
70 |
public function prepareShopgateCouponProduct(Mage_Catalog_Model_Product $product)
|
@@ -116,6 +115,7 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
|
116 |
$this->_attributeSet = $this->_createShopgateCouponAttributeSet();
|
117 |
}
|
118 |
}
|
|
|
119 |
return $this->_attributeSet;
|
120 |
}
|
121 |
|
@@ -127,6 +127,7 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
|
127 |
$entityTypeId = Mage::getModel('catalog/product')
|
128 |
->getResource()->getEntityType()->getId();
|
129 |
|
|
|
130 |
$attributeSet = Mage::getModel('eav/entity_attribute_set')
|
131 |
->setEntityTypeId($entityTypeId)
|
132 |
->setAttributeSetName(self::COUPON_ATTRIUBTE_SET_NAME);
|
@@ -161,15 +162,16 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
|
161 |
* Create magento coupon product from object
|
162 |
*
|
163 |
* @param Varien_Object $coupon
|
|
|
164 |
* @return Mage_Catalog_Model_Product
|
165 |
*/
|
166 |
public function createProductFromShopgateCoupon(Varien_Object $coupon)
|
167 |
{
|
168 |
/* @var $product Mage_Catalog_Model_Product */
|
169 |
$product = Mage::getModel('catalog/product');
|
170 |
-
$id
|
171 |
$product->load($id);
|
172 |
-
|
173 |
$product = $this->prepareShopgateCouponProduct($product);
|
174 |
$product->setPriceCalculation(false);
|
175 |
$product->setName($coupon->getName());
|
@@ -183,6 +185,202 @@ class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
|
183 |
$product->save();
|
184 |
Mage::app()->setCurrentStore($oldStoreId);
|
185 |
}
|
|
|
186 |
return $product;
|
187 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
188 |
}
|
22 |
*/
|
23 |
|
24 |
/**
|
25 |
+
* Coupon & cart rule helper
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
*
|
27 |
+
* @author Shopgate GmbH, 35510 Butzbach, DE
|
28 |
+
* @package Shopgate_Framework
|
29 |
*/
|
30 |
class Shopgate_Framework_Helper_Coupon extends Mage_Core_Helper_Abstract
|
31 |
{
|
32 |
const COUPON_ATTRIUBTE_SET_NAME = 'Shopgate Coupon';
|
33 |
const COUPON_PRODUCT_SKU = 'shopgate-coupon';
|
34 |
|
35 |
+
/**
|
36 |
+
* const to detect coupons, which just represent cart rules
|
37 |
+
*/
|
38 |
+
const CART_RULE_COUPON_CODE = '1';
|
39 |
+
|
40 |
protected $_attributeSet = null;
|
41 |
|
42 |
/**
|
43 |
* Determines if a product is a Shopgate Coupon
|
44 |
*
|
45 |
* @param Mage_Catalog_Model_Product $product
|
46 |
+
*
|
47 |
* @return boolean
|
48 |
*/
|
49 |
public function isShopgateCoupon(Mage_Catalog_Model_Product $product)
|
50 |
{
|
51 |
+
$attributeSetModel = Mage::getModel('eav/entity_attribute_set')->load($product->getAttributeSetId());
|
|
|
52 |
|
53 |
if ($product->getTypeId() == Mage_Catalog_Model_Product_Type::TYPE_VIRTUAL
|
54 |
&& $attributeSetModel->getAttributeSetName() == self::COUPON_ATTRIUBTE_SET_NAME
|
63 |
* Sets missing product Attributes for virutal product
|
64 |
*
|
65 |
* @param Mage_Catalog_Model_Product $product
|
66 |
+
*
|
67 |
* @return Mage_Catalog_Model_Product
|
68 |
*/
|
69 |
public function prepareShopgateCouponProduct(Mage_Catalog_Model_Product $product)
|
115 |
$this->_attributeSet = $this->_createShopgateCouponAttributeSet();
|
116 |
}
|
117 |
}
|
118 |
+
|
119 |
return $this->_attributeSet;
|
120 |
}
|
121 |
|
127 |
$entityTypeId = Mage::getModel('catalog/product')
|
128 |
->getResource()->getEntityType()->getId();
|
129 |
|
130 |
+
/** @var Mage_Eav_Model_Entity_Attribute_Set $attributeSet */
|
131 |
$attributeSet = Mage::getModel('eav/entity_attribute_set')
|
132 |
->setEntityTypeId($entityTypeId)
|
133 |
->setAttributeSetName(self::COUPON_ATTRIUBTE_SET_NAME);
|
162 |
* Create magento coupon product from object
|
163 |
*
|
164 |
* @param Varien_Object $coupon
|
165 |
+
*
|
166 |
* @return Mage_Catalog_Model_Product
|
167 |
*/
|
168 |
public function createProductFromShopgateCoupon(Varien_Object $coupon)
|
169 |
{
|
170 |
/* @var $product Mage_Catalog_Model_Product */
|
171 |
$product = Mage::getModel('catalog/product');
|
172 |
+
$id = $product->getIdBySku($coupon->getItemNumber());
|
173 |
$product->load($id);
|
174 |
+
|
175 |
$product = $this->prepareShopgateCouponProduct($product);
|
176 |
$product->setPriceCalculation(false);
|
177 |
$product->setName($coupon->getName());
|
185 |
$product->save();
|
186 |
Mage::app()->setCurrentStore($oldStoreId);
|
187 |
}
|
188 |
+
|
189 |
return $product;
|
190 |
}
|
191 |
+
|
192 |
+
/**
|
193 |
+
* Check coupons for validation and apply shopping cart price rules to the cart
|
194 |
+
*
|
195 |
+
* @param Mage_Checkout_Model_Cart $mageCart
|
196 |
+
* @param ShopgateCart $cart
|
197 |
+
* @param bool $useTaxClasses
|
198 |
+
*
|
199 |
+
* @return ShopgateExternalCoupon[]
|
200 |
+
* @throws ShopgateLibraryException
|
201 |
+
*/
|
202 |
+
public function checkCouponsAndCartRules($mageCart, ShopgateCart $cart, $useTaxClasses)
|
203 |
+
{
|
204 |
+
/* @var $mageQuote Mage_Sales_Model_Quote */
|
205 |
+
/* @var $mageCart Mage_Checkout_Model_Cart */
|
206 |
+
/* @var $mageCoupon Mage_SalesRule_Model_Coupon */
|
207 |
+
/* @var $mageRule Mage_SalesRule_Model_Rule */
|
208 |
+
$mageQuote = $mageCart->getQuote();
|
209 |
+
$mageQuote->setTotalsCollectedFlag(false)->collectTotals();
|
210 |
+
|
211 |
+
$externalCoupons = array();
|
212 |
+
$validCouponsInCart = 0;
|
213 |
+
$returnEmptyCoupon = false;
|
214 |
+
$appliedRules = $mageQuote->getAppliedRuleIds();
|
215 |
+
$totals = $mageQuote->getTotals();
|
216 |
+
$discountAmount = empty($totals['discount']) ? 0 : $totals['discount']->getValue();
|
217 |
+
|
218 |
+
if (!$cart->getExternalCoupons() && empty($discountAmount)) {
|
219 |
+
return array();
|
220 |
+
}
|
221 |
+
|
222 |
+
foreach ($cart->getExternalCoupons() as $coupon) {
|
223 |
+
if ($coupon->getCode() === self::CART_RULE_COUPON_CODE) {
|
224 |
+
$returnEmptyCoupon = true;
|
225 |
+
continue;
|
226 |
+
}
|
227 |
+
|
228 |
+
$externalCoupon = $this->validateExternalCoupon($coupon, $mageQuote, $useTaxClasses);
|
229 |
+
|
230 |
+
if ($externalCoupon->getIsValid()) {
|
231 |
+
$validCouponsInCart++;
|
232 |
+
}
|
233 |
+
if ($validCouponsInCart > 1) {
|
234 |
+
$errorCode = ShopgateLibraryException::COUPON_TOO_MANY_COUPONS;
|
235 |
+
$externalCoupon->setIsValid(false);
|
236 |
+
$externalCoupon->setNotValidMessage(ShopgateLibraryException::getMessageFor($errorCode));
|
237 |
+
}
|
238 |
+
$externalCoupons[] = $externalCoupon;
|
239 |
+
}
|
240 |
+
|
241 |
+
if (!empty($discountAmount) && $validCouponsInCart == 0) {
|
242 |
+
try {
|
243 |
+
$totals = $mageQuote->getTotals();
|
244 |
+
if (isset($totals['discount'])) {
|
245 |
+
$discount = $totals['discount'];
|
246 |
+
$coupon = new ShopgateExternalCoupon();
|
247 |
+
$coupon->setIsValid(true);
|
248 |
+
$coupon->setCode(self::CART_RULE_COUPON_CODE);
|
249 |
+
$title = $discount->getTitle();
|
250 |
+
$title = empty($title) ? Mage::helper('sales')->__('Discount') : $title;
|
251 |
+
$coupon->setName($title);
|
252 |
+
$coupon->setDescription($discount->getTitle());
|
253 |
+
$amountCoupon = abs($discount->getValue());
|
254 |
+
if ($useTaxClasses) {
|
255 |
+
$coupon->setAmountGross($amountCoupon);
|
256 |
+
} else {
|
257 |
+
$coupon->setAmountNet($amountCoupon);
|
258 |
+
}
|
259 |
+
$coupon->setCurrency(Mage::app()->getStore()->getCurrentCurrencyCode());
|
260 |
+
$coupon->setInternalInfo(
|
261 |
+
Mage::helper('shopgate')->getConfig()->jsonEncode(array('rule_ids' => $appliedRules))
|
262 |
+
);
|
263 |
+
$externalCoupons[] = $coupon;
|
264 |
+
$returnEmptyCoupon = false;
|
265 |
+
}
|
266 |
+
} catch (Exception $e) {
|
267 |
+
ShopgateLogger::getInstance()->log(
|
268 |
+
"Could not add rule with id " . $appliedRules . " to quote",
|
269 |
+
ShopgateLogger::LOGTYPE_DEBUG
|
270 |
+
);
|
271 |
+
|
272 |
+
return array();
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
if ($returnEmptyCoupon) {
|
277 |
+
$coupon = new ShopgateExternalCoupon();
|
278 |
+
$coupon->setCode(self::CART_RULE_COUPON_CODE);
|
279 |
+
$coupon->setName(Mage::helper('sales')->__('Discount'));
|
280 |
+
$coupon->setIsValid(false);
|
281 |
+
$externalCoupons[] = $coupon;
|
282 |
+
}
|
283 |
+
|
284 |
+
return $externalCoupons;
|
285 |
+
}
|
286 |
+
|
287 |
+
/**
|
288 |
+
* Checks a coupon for validation
|
289 |
+
*
|
290 |
+
* @param ShopgateExternalCoupon $coupon
|
291 |
+
* @param Mage_Sales_Model_Quote $mageQuote
|
292 |
+
* @param bool $useTaxClasses
|
293 |
+
*
|
294 |
+
* @return ShopgateExternalCoupon
|
295 |
+
* @throws ShopgateLibraryException
|
296 |
+
*/
|
297 |
+
public function validateExternalCoupon($coupon, $mageQuote, $useTaxClasses)
|
298 |
+
{
|
299 |
+
/** @var ShopgateExternalCoupon $coupon */
|
300 |
+
$externalCoupon = new ShopgateExternalCoupon();
|
301 |
+
$externalCoupon->setIsValid(true);
|
302 |
+
$externalCoupon->setCode($coupon->getCode());
|
303 |
+
|
304 |
+
try {
|
305 |
+
$mageQuote->setCouponCode($coupon->getCode());
|
306 |
+
$mageQuote->setTotalsCollectedFlag(false)->collectTotals();
|
307 |
+
$totals = $mageQuote->getTotals();
|
308 |
+
} catch (Exception $e) {
|
309 |
+
$externalCoupon->setIsValid(false);
|
310 |
+
$externalCoupon->setNotValidMessage($e->getMessage());
|
311 |
+
}
|
312 |
+
|
313 |
+
if (Mage::helper('shopgate/config')->getIsMagentoVersionLower1410()) {
|
314 |
+
$mageRule = Mage::getModel('salesrule/rule')->load($coupon->getCode(), 'coupon_code');
|
315 |
+
$mageCoupon = $mageRule;
|
316 |
+
} else {
|
317 |
+
$mageCoupon = Mage::getModel('salesrule/coupon')->load($coupon->getCode(), 'code');
|
318 |
+
$mageRule = Mage::getModel('salesrule/rule')->load($mageCoupon->getRuleId());
|
319 |
+
}
|
320 |
+
|
321 |
+
if ($mageRule->getId() && $mageQuote->getCouponCode()) {
|
322 |
+
$discountName = isset($totals['discount'])
|
323 |
+
? $totals['discount']->getTitle()
|
324 |
+
: $mageRule->getDescription();
|
325 |
+
|
326 |
+
$couponInfo = array();
|
327 |
+
$couponInfo["coupon_id"] = $mageCoupon->getId();
|
328 |
+
$couponInfo["rule_id"] = $mageRule->getId();
|
329 |
+
|
330 |
+
$amountCoupon = $mageQuote->getSubtotal() - $mageQuote->getSubtotalWithDiscount();
|
331 |
+
$storeLabel = $mageRule->getStoreLabel(Mage::app()->getStore()->getId());
|
332 |
+
$externalCoupon->setName($storeLabel ? $storeLabel : $mageRule->getName());
|
333 |
+
$externalCoupon->setDescription($discountName);
|
334 |
+
$externalCoupon->setIsFreeShipping((bool)$mageQuote->getShippingAddress()->getFreeShipping());
|
335 |
+
$externalCoupon->setInternalInfo(Mage::helper('shopgate')->getConfig()->jsonEncode($couponInfo));
|
336 |
+
if ($useTaxClasses) {
|
337 |
+
$externalCoupon->setAmountGross($amountCoupon);
|
338 |
+
} else {
|
339 |
+
$externalCoupon->setAmountNet($amountCoupon);
|
340 |
+
}
|
341 |
+
if (!$amountCoupon && !$externalCoupon->getIsFreeShipping()) {
|
342 |
+
$externalCoupon->setIsValid(0);
|
343 |
+
$externalCoupon->setAmount(0);
|
344 |
+
$externalCoupon->setNotValidMessage(
|
345 |
+
Mage::helper('shopgate')->__(
|
346 |
+
'Coupon code "%s" is not valid.',
|
347 |
+
Mage::helper('core')->escapeHtml($coupon->getCode())
|
348 |
+
)
|
349 |
+
);
|
350 |
+
}
|
351 |
+
} else {
|
352 |
+
$externalCoupon->setIsValid(0);
|
353 |
+
$externalCoupon->setAmount(0);
|
354 |
+
$externalCoupon->setNotValidMessage(
|
355 |
+
Mage::helper('shopgate')->__(
|
356 |
+
'Coupon code "%s" is not valid.',
|
357 |
+
Mage::helper('core')->escapeHtml($coupon->getCode())
|
358 |
+
)
|
359 |
+
);
|
360 |
+
}
|
361 |
+
$externalCoupon->setCurrency(Mage::app()->getStore()->getCurrentCurrencyCode());
|
362 |
+
|
363 |
+
return $externalCoupon;
|
364 |
+
}
|
365 |
+
|
366 |
+
/**
|
367 |
+
* Add coupon from this system to quote
|
368 |
+
*
|
369 |
+
* @param ShopgateCartBase $order
|
370 |
+
*
|
371 |
+
* @return ShopgateCartBase $order
|
372 |
+
*/
|
373 |
+
public function removeCartRuleCoupons(ShopgateCartBase $order)
|
374 |
+
{
|
375 |
+
$externalCoupons = array();
|
376 |
+
foreach ($order->getExternalCoupons() as $coupon) {
|
377 |
+
/* @var $coupon ShopgateExternalCoupon */
|
378 |
+
if ($coupon->getCode() !== self::CART_RULE_COUPON_CODE) {
|
379 |
+
$externalCoupons[] = $coupon;
|
380 |
+
}
|
381 |
+
}
|
382 |
+
$order->setExternalCoupons($externalCoupons);
|
383 |
+
|
384 |
+
return $order;
|
385 |
+
}
|
386 |
}
|
app/code/community/Shopgate/Framework/Model/Config.php
CHANGED
@@ -95,6 +95,7 @@ class Shopgate_Framework_Model_Config extends ShopgateConfig
|
|
95 |
const XML_PATH_SHOPGATE_ORDER_MARK_UNBLOCKED_AS_PAID = "shopgate/orders/mark_unblocked_orders_as_paid";
|
96 |
const XML_PATH_SHOPGATE_ORDER_SEND_NEW_ORDER_MAIL = "shopgate/orders/send_new_order_mail";
|
97 |
const XML_PATH_SHOPGATE_ORDER_CUSTOMFIELDS_TO_STATUSHISTORY = "shopgate/orders/write_customfields_into_statushistory";
|
|
|
98 |
const XML_PATH_SHOPGATE_ORDER_ADD_ONLY_SIMPLE = "shopgate/orders/add_only_simple";
|
99 |
const XML_PATH_SHOPGATE_ORDER_USE_SHOPGATE_PRICES = "shopgate/orders/use_shopgate_prices";
|
100 |
const XML_PATH_SHOPGATE_REDIRECT_TYPE = "shopgate/mobile/redirect_type";
|
@@ -322,6 +323,7 @@ class Shopgate_Framework_Model_Config extends ShopgateConfig
|
|
322 |
=> Mage_CatalogInventory_Helper_Data::XML_PATH_SHOW_OUT_OF_STOCK,
|
323 |
"available_text_attribute_code"
|
324 |
=> self::XML_PATH_SHOPGATE_EXPORT_AVAILABLE_TEXT_ATTRIBUTE_CODE,
|
|
|
325 |
"add_only_simple" => self::XML_PATH_SHOPGATE_ORDER_ADD_ONLY_SIMPLE,
|
326 |
"fix_one_cent_bug" => self::XML_PATH_SHOPGATE_FIX_ONE_CENT_BUG,
|
327 |
"use_shopgate_prices" => self::XML_PATH_SHOPGATE_ORDER_USE_SHOPGATE_PRICES,
|
@@ -1044,6 +1046,19 @@ class Shopgate_Framework_Model_Config extends ShopgateConfig
|
|
1044 |
return explode(",", $countries);
|
1045 |
}
|
1046 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1047 |
/**
|
1048 |
* Returns if only the simple product should be added to the cart, in case the order contains config/simple prdocuts.
|
1049 |
*
|
95 |
const XML_PATH_SHOPGATE_ORDER_MARK_UNBLOCKED_AS_PAID = "shopgate/orders/mark_unblocked_orders_as_paid";
|
96 |
const XML_PATH_SHOPGATE_ORDER_SEND_NEW_ORDER_MAIL = "shopgate/orders/send_new_order_mail";
|
97 |
const XML_PATH_SHOPGATE_ORDER_CUSTOMFIELDS_TO_STATUSHISTORY = "shopgate/orders/write_customfields_into_statushistory";
|
98 |
+
const XML_PATH_SHOPGATE_ORDER_APPLY_CART_RULES = "shopgate/orders/apply_cart_rules";
|
99 |
const XML_PATH_SHOPGATE_ORDER_ADD_ONLY_SIMPLE = "shopgate/orders/add_only_simple";
|
100 |
const XML_PATH_SHOPGATE_ORDER_USE_SHOPGATE_PRICES = "shopgate/orders/use_shopgate_prices";
|
101 |
const XML_PATH_SHOPGATE_REDIRECT_TYPE = "shopgate/mobile/redirect_type";
|
323 |
=> Mage_CatalogInventory_Helper_Data::XML_PATH_SHOW_OUT_OF_STOCK,
|
324 |
"available_text_attribute_code"
|
325 |
=> self::XML_PATH_SHOPGATE_EXPORT_AVAILABLE_TEXT_ATTRIBUTE_CODE,
|
326 |
+
"apply_cart_rules" => self::XML_PATH_SHOPGATE_ORDER_APPLY_CART_RULES,
|
327 |
"add_only_simple" => self::XML_PATH_SHOPGATE_ORDER_ADD_ONLY_SIMPLE,
|
328 |
"fix_one_cent_bug" => self::XML_PATH_SHOPGATE_FIX_ONE_CENT_BUG,
|
329 |
"use_shopgate_prices" => self::XML_PATH_SHOPGATE_ORDER_USE_SHOPGATE_PRICES,
|
1046 |
return explode(",", $countries);
|
1047 |
}
|
1048 |
|
1049 |
+
/**
|
1050 |
+
* Returns if cart rules should be applied to shopgate carts
|
1051 |
+
*
|
1052 |
+
* @return mixed
|
1053 |
+
*/
|
1054 |
+
public function applyCartRulesToCart()
|
1055 |
+
{
|
1056 |
+
return Mage::getStoreConfigFlag(
|
1057 |
+
Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_ORDER_APPLY_CART_RULES,
|
1058 |
+
$this->getStoreViewId()
|
1059 |
+
);
|
1060 |
+
}
|
1061 |
+
|
1062 |
/**
|
1063 |
* Returns if only the simple product should be added to the cart, in case the order contains config/simple prdocuts.
|
1064 |
*
|
app/code/community/Shopgate/Framework/Model/Observer.php
CHANGED
@@ -207,16 +207,25 @@ class Shopgate_Framework_Model_Observer
|
|
207 |
}
|
208 |
|
209 |
/**
|
210 |
-
* get
|
211 |
*
|
212 |
* @param $storeId
|
213 |
*/
|
214 |
-
protected function
|
215 |
{
|
216 |
-
|
217 |
-
if ($this->_config == null) {
|
218 |
$this->_config = Mage::helper('shopgate/config')->getConfig($storeId);
|
219 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
220 |
$builder = new ShopgateBuilder($this->_config);
|
221 |
$this->_merchantApi = $builder->buildMerchantApi();
|
222 |
}
|
@@ -575,12 +584,15 @@ class Shopgate_Framework_Model_Observer
|
|
575 |
public function beforeSalesrulesLoaded($observer)
|
576 |
{
|
577 |
if (Mage::helper('shopgate')->isShopgateApiRequest()) {
|
578 |
-
$
|
579 |
-
if (
|
580 |
-
$collection->
|
581 |
-
|
582 |
-
|
583 |
-
|
|
|
|
|
|
|
584 |
}
|
585 |
}
|
586 |
}
|
@@ -613,8 +625,8 @@ class Shopgate_Framework_Model_Observer
|
|
613 |
Mage::app()->setCurrentStore($storeViewId);
|
614 |
|
615 |
$collection = Mage::getModel('catalog/product')
|
616 |
-
|
617 |
-
|
618 |
|
619 |
$helper = Mage::helper('shopgate/coupon');
|
620 |
|
@@ -677,9 +689,9 @@ class Shopgate_Framework_Model_Observer
|
|
677 |
);
|
678 |
|
679 |
$collection = Mage::getModel('core/config_data')
|
680 |
-
|
681 |
-
|
682 |
-
|
683 |
|
684 |
if ($collection->getSize() && $collection->getFirstItem()->getScope() == 'websites') {
|
685 |
Mage::getConfig()->saveConfig(
|
207 |
}
|
208 |
|
209 |
/**
|
210 |
+
* get config
|
211 |
*
|
212 |
* @param $storeId
|
213 |
*/
|
214 |
+
protected function _initConfig($storeId = null)
|
215 |
{
|
216 |
+
if ($this->_config == null || ($storeId !== null && $storeId !== $this->_config->getStoreViewId())) {
|
|
|
217 |
$this->_config = Mage::helper('shopgate/config')->getConfig($storeId);
|
218 |
}
|
219 |
+
}
|
220 |
+
|
221 |
+
/**
|
222 |
+
* get merchant api
|
223 |
+
*
|
224 |
+
* @param $storeId
|
225 |
+
*/
|
226 |
+
protected function _initMerchantApi($storeId)
|
227 |
+
{
|
228 |
+
$this->_initConfig($storeId);
|
229 |
$builder = new ShopgateBuilder($this->_config);
|
230 |
$this->_merchantApi = $builder->buildMerchantApi();
|
231 |
}
|
584 |
public function beforeSalesrulesLoaded($observer)
|
585 |
{
|
586 |
if (Mage::helper('shopgate')->isShopgateApiRequest()) {
|
587 |
+
$this->_initConfig();
|
588 |
+
if (!$this->_config->applyCartRulesToCart() || Mage::registry('shopgate_disable_sales_rules')) {
|
589 |
+
$collection = $observer->getEvent()->getCollection();
|
590 |
+
if ($collection instanceof Mage_SalesRule_Model_Resource_Rule_Collection) {
|
591 |
+
$collection->getSelect()->where(
|
592 |
+
'coupon_type = ' . Mage_SalesRule_Model_Rule::COUPON_TYPE_SPECIFIC .
|
593 |
+
' OR simple_free_shipping IN (1,2)'
|
594 |
+
);
|
595 |
+
}
|
596 |
}
|
597 |
}
|
598 |
}
|
625 |
Mage::app()->setCurrentStore($storeViewId);
|
626 |
|
627 |
$collection = Mage::getModel('catalog/product')
|
628 |
+
->getResourceCollection()
|
629 |
+
->addFieldToFilter('type_id', 'virtual');
|
630 |
|
631 |
$helper = Mage::helper('shopgate/coupon');
|
632 |
|
689 |
);
|
690 |
|
691 |
$collection = Mage::getModel('core/config_data')
|
692 |
+
->getCollection()
|
693 |
+
->addFieldToFilter('path', Shopgate_Framework_Model_Config::XML_PATH_SHOPGATE_SHOP_NUMBER)
|
694 |
+
->addFieldToFilter('value', $shopnumber);
|
695 |
|
696 |
if ($collection->getSize() && $collection->getFirstItem()->getScope() == 'websites') {
|
697 |
Mage::getConfig()->saveConfig(
|
app/code/community/Shopgate/Framework/Model/Shopgate/Plugin.php
CHANGED
@@ -1062,6 +1062,10 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
|
|
1062 |
*/
|
1063 |
protected function _setQuoteShopCoupons($quote, $order)
|
1064 |
{
|
|
|
|
|
|
|
|
|
1065 |
if (count($order->getExternalCoupons()) > 1) {
|
1066 |
throw new ShopgateLibraryException(ShopgateLibraryException::COUPON_TOO_MANY_COUPONS);
|
1067 |
}
|
@@ -1116,6 +1120,11 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
|
|
1116 |
$quote->save();
|
1117 |
}
|
1118 |
|
|
|
|
|
|
|
|
|
|
|
1119 |
return $quote;
|
1120 |
}
|
1121 |
|
@@ -1556,10 +1565,9 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
|
|
1556 |
/**
|
1557 |
* Create a Magento cart and the quote
|
1558 |
*
|
1559 |
-
* @throws ShopgateLibraryException
|
1560 |
-
*
|
1561 |
* @param ShopgateCart $cart
|
1562 |
*
|
|
|
1563 |
* @return Mage_Checkout_Model_Cart
|
1564 |
*/
|
1565 |
protected function _createMagentoCartFromShopgateCart(ShopgateCart $cart)
|
@@ -1595,21 +1603,24 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
|
|
1595 |
* * Coupon cannot found
|
1596 |
* * Magento throws an exception
|
1597 |
*
|
1598 |
-
* @param
|
1599 |
-
* @param ShopgateCart
|
1600 |
*
|
1601 |
-
* @return
|
1602 |
* @throws ShopgateLibraryException
|
1603 |
*/
|
1604 |
public function checkCoupons($mageCart, ShopgateCart $cart)
|
1605 |
{
|
1606 |
/* @var $mageQuote Mage_Sales_Model_Quote */
|
1607 |
-
/* @var $mageCart Mage_Checkout_Model_Cart */
|
1608 |
/* @var $mageCoupon Mage_SalesRule_Model_Coupon */
|
1609 |
/* @var $mageRule Mage_SalesRule_Model_Rule */
|
1610 |
|
|
|
|
|
|
|
|
|
1611 |
if (!$cart->getExternalCoupons()) {
|
1612 |
-
return
|
1613 |
}
|
1614 |
|
1615 |
$externalCoupons = array();
|
@@ -1617,74 +1628,17 @@ class Shopgate_Framework_Model_Shopgate_Plugin extends ShopgatePlugin
|
|
1617 |
$validCouponsInCart = 0;
|
1618 |
|
1619 |
foreach ($cart->getExternalCoupons() as $coupon) {
|
1620 |
-
|
1621 |
-
$externalCoupon = new ShopgateExternalCoupon();
|
1622 |
-
$externalCoupon->setIsValid(true);
|
1623 |
-
$externalCoupon->setCode($coupon->getCode());
|
1624 |
-
|
1625 |
-
try {
|
1626 |
-
$mageQuote->setCouponCode($coupon->getCode());
|
1627 |
-
$mageQuote->setTotalsCollectedFlag(false)->collectTotals();
|
1628 |
-
} catch (Exception $e) {
|
1629 |
-
$externalCoupon->setIsValid(false);
|
1630 |
-
$externalCoupon->setNotValidMessage($e->getMessage());
|
1631 |
-
}
|
1632 |
-
|
1633 |
-
if ($this->_getConfigHelper()->getIsMagentoVersionLower1410()) {
|
1634 |
-
$mageRule = Mage::getModel('salesrule/rule')->load($coupon->getCode(), 'coupon_code');
|
1635 |
-
$mageCoupon = $mageRule;
|
1636 |
-
} else {
|
1637 |
-
$mageCoupon = Mage::getModel('salesrule/coupon')->load($coupon->getCode(), 'code');
|
1638 |
-
$mageRule = Mage::getModel('salesrule/rule')->load($mageCoupon->getRuleId());
|
1639 |
-
}
|
1640 |
|
1641 |
-
if ($
|
1642 |
-
$
|
1643 |
-
$couponInfo["coupon_id"] = $mageCoupon->getId();
|
1644 |
-
$couponInfo["rule_id"] = $mageRule->getId();
|
1645 |
-
|
1646 |
-
$amountCoupon = $mageQuote->getSubtotal() - $mageQuote->getSubtotalWithDiscount();
|
1647 |
-
|
1648 |
-
$storeLabel = $mageRule->getStoreLabel(Mage::app()->getStore()->getId());
|
1649 |
-
$externalCoupon->setName($storeLabel ? $storeLabel : $mageRule->getName());
|
1650 |
-
$externalCoupon->setDescription($mageRule->getDescription());
|
1651 |
-
$externalCoupon->setIsFreeShipping((bool)$mageQuote->getShippingAddress()->getFreeShipping());
|
1652 |
-
$externalCoupon->setInternalInfo($this->jsonEncode($couponInfo));
|
1653 |
-
if ($this->useTaxClasses) {
|
1654 |
-
$externalCoupon->setAmountGross($amountCoupon);
|
1655 |
-
} else {
|
1656 |
-
$externalCoupon->setAmountNet($amountCoupon);
|
1657 |
-
}
|
1658 |
-
if (!$amountCoupon && !$externalCoupon->getIsFreeShipping()) {
|
1659 |
-
$externalCoupon->setIsValid(false);
|
1660 |
-
$externalCoupon->setNotValidMessage(
|
1661 |
-
$this->_getHelper()->__(
|
1662 |
-
'Coupon code "%s" is not valid.',
|
1663 |
-
Mage::helper('core')->htmlEscape($coupon->getCode())
|
1664 |
-
)
|
1665 |
-
);
|
1666 |
-
}
|
1667 |
-
|
1668 |
-
} else {
|
1669 |
-
$externalCoupon->setIsValid(false);
|
1670 |
-
$externalCoupon->setNotValidMessage(
|
1671 |
-
$this->_getHelper()->__(
|
1672 |
-
'Coupon code "%s" is not valid.',
|
1673 |
-
Mage::helper('core')->htmlEscape($coupon->getCode())
|
1674 |
-
)
|
1675 |
-
);
|
1676 |
}
|
1677 |
-
|
1678 |
-
if ($externalCoupon->getIsValid() && $validCouponsInCart >= 1) {
|
1679 |
$errorCode = ShopgateLibraryException::COUPON_TOO_MANY_COUPONS;
|
1680 |
$externalCoupon->setIsValid(false);
|
1681 |
$externalCoupon->setNotValidMessage(ShopgateLibraryException::getMessageFor($errorCode));
|
1682 |
}
|
1683 |
|
1684 |
-
if ($externalCoupon->getIsValid()) {
|
1685 |
-
$validCouponsInCart++;
|
1686 |
-
}
|
1687 |
-
|
1688 |
$externalCoupons[] = $externalCoupon;
|
1689 |
}
|
1690 |
|
1062 |
*/
|
1063 |
protected function _setQuoteShopCoupons($quote, $order)
|
1064 |
{
|
1065 |
+
if ($this->_getConfig()->applyCartRulesToCart()) {
|
1066 |
+
$order = $this->_getCouponHelper()->removeCartRuleCoupons($order);
|
1067 |
+
}
|
1068 |
+
|
1069 |
if (count($order->getExternalCoupons()) > 1) {
|
1070 |
throw new ShopgateLibraryException(ShopgateLibraryException::COUPON_TOO_MANY_COUPONS);
|
1071 |
}
|
1120 |
$quote->save();
|
1121 |
}
|
1122 |
|
1123 |
+
if ($this->_getConfig()->applyCartRulesToCart()) {
|
1124 |
+
$session = Mage::getSingleton('checkout/session');
|
1125 |
+
$session->replaceQuote($quote);
|
1126 |
+
}
|
1127 |
+
|
1128 |
return $quote;
|
1129 |
}
|
1130 |
|
1565 |
/**
|
1566 |
* Create a Magento cart and the quote
|
1567 |
*
|
|
|
|
|
1568 |
* @param ShopgateCart $cart
|
1569 |
*
|
1570 |
+
* @throws ShopgateLibraryException
|
1571 |
* @return Mage_Checkout_Model_Cart
|
1572 |
*/
|
1573 |
protected function _createMagentoCartFromShopgateCart(ShopgateCart $cart)
|
1603 |
* * Coupon cannot found
|
1604 |
* * Magento throws an exception
|
1605 |
*
|
1606 |
+
* @param Mage_Checkout_Model_Cart $mageCart
|
1607 |
+
* @param ShopgateCart $cart
|
1608 |
*
|
1609 |
+
* @return ShopgateExternalCoupon[]
|
1610 |
* @throws ShopgateLibraryException
|
1611 |
*/
|
1612 |
public function checkCoupons($mageCart, ShopgateCart $cart)
|
1613 |
{
|
1614 |
/* @var $mageQuote Mage_Sales_Model_Quote */
|
|
|
1615 |
/* @var $mageCoupon Mage_SalesRule_Model_Coupon */
|
1616 |
/* @var $mageRule Mage_SalesRule_Model_Rule */
|
1617 |
|
1618 |
+
if ($this->_getConfig()->applyCartRulesToCart()) {
|
1619 |
+
return $this->_getCouponHelper()->checkCouponsAndCartRules($mageCart, $cart, $this->useTaxClasses);
|
1620 |
+
}
|
1621 |
+
|
1622 |
if (!$cart->getExternalCoupons()) {
|
1623 |
+
return array();
|
1624 |
}
|
1625 |
|
1626 |
$externalCoupons = array();
|
1628 |
$validCouponsInCart = 0;
|
1629 |
|
1630 |
foreach ($cart->getExternalCoupons() as $coupon) {
|
1631 |
+
$externalCoupon = $this->_getCouponHelper()->validateExternalCoupon($coupon, $mageQuote, $this->useTaxClasses);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1632 |
|
1633 |
+
if ($externalCoupon->getIsValid()) {
|
1634 |
+
$validCouponsInCart++;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1635 |
}
|
1636 |
+
if ($validCouponsInCart > 1) {
|
|
|
1637 |
$errorCode = ShopgateLibraryException::COUPON_TOO_MANY_COUPONS;
|
1638 |
$externalCoupon->setIsValid(false);
|
1639 |
$externalCoupon->setNotValidMessage(ShopgateLibraryException::getMessageFor($errorCode));
|
1640 |
}
|
1641 |
|
|
|
|
|
|
|
|
|
1642 |
$externalCoupons[] = $externalCoupon;
|
1643 |
}
|
1644 |
|
app/code/community/Shopgate/Framework/Test/Model/ObserverTest.php
ADDED
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
+
* @coversDefaultClass Shopgate_Framework_Model_Observer
|
25 |
+
*/
|
26 |
+
class Shopgate_Framework_Test_Model_ObserverTest extends EcomDev_PHPUnit_Test_Case
|
27 |
+
{
|
28 |
+
/**
|
29 |
+
* Returns true that we are making a Shopgate API request
|
30 |
+
*/
|
31 |
+
public function setUp()
|
32 |
+
{
|
33 |
+
$helper = $this->getHelperMock('shopgate', array('isShopgateApiRequest'));
|
34 |
+
$helper->expects($this->any())->method('isShopgateApiRequest')->willReturn(true);
|
35 |
+
$this->replaceByMock('helper', 'shopgate', $helper);
|
36 |
+
}
|
37 |
+
|
38 |
+
/**
|
39 |
+
* @param bool $expected - whether Sales Rules are blocked from applying to cart/order
|
40 |
+
* @param bool $config - config value of "Apply Sales Rules"
|
41 |
+
* @param bool $registryValue - registry value to disable sales rules from applying, true - disable
|
42 |
+
*
|
43 |
+
* @covers ::beforeSalesrulesLoaded
|
44 |
+
* @dataProvider salesRuleDataProvider
|
45 |
+
*/
|
46 |
+
public function testBeforeSalesrulesLoaded($expected, $config, $registryValue)
|
47 |
+
{
|
48 |
+
$observer = new Varien_Event_Observer();
|
49 |
+
$event = new Varien_Event();
|
50 |
+
$collectionMock = $this->getResourceModelMock('salesrule/rule_collection', array('getReadConnection'));
|
51 |
+
$event->setData('collection', $collectionMock);
|
52 |
+
$observer->setEvent($event);
|
53 |
+
$registryValue ? Mage::register('shopgate_disable_sales_rules', $registryValue) : false;
|
54 |
+
|
55 |
+
Mage::app()->getStore(0)->setConfig('shopgate/orders/apply_cart_rules', (int)$config);
|
56 |
+
Mage::getModel('shopgate/observer')->beforeSalesrulesLoaded($observer);
|
57 |
+
|
58 |
+
/** @var Mage_SalesRule_Model_Resource_Rule_Collection $collectionMock */
|
59 |
+
$where = $collectionMock->getSelect()->getPart(Zend_Db_Select::WHERE);
|
60 |
+
$actual = isset($where[0]) && strpos($where[0], 'coupon_type') !== false;
|
61 |
+
$this->assertEquals($expected, $actual);
|
62 |
+
}
|
63 |
+
|
64 |
+
/**
|
65 |
+
* @return array
|
66 |
+
*/
|
67 |
+
public function salesRuleDataProvider()
|
68 |
+
{
|
69 |
+
return array(
|
70 |
+
array(
|
71 |
+
'Sales Rules are blocked' => true,
|
72 |
+
'Apply Sales Rules in cfg' => true,
|
73 |
+
'Sales Rules Disabled in registry' => true
|
74 |
+
),
|
75 |
+
array(
|
76 |
+
'Sales Rules are blocked' => false,
|
77 |
+
'Apply Sales Rules in cfg' => true,
|
78 |
+
'Sales Rules Disabled in registry' => false
|
79 |
+
),
|
80 |
+
array(
|
81 |
+
'Sales Rules are blocked' => true,
|
82 |
+
'Apply Sales Rules in cfg' => false,
|
83 |
+
'Sales Rules Disabled in registry' => true
|
84 |
+
),
|
85 |
+
array(
|
86 |
+
'Sales Rules are blocked' => true,
|
87 |
+
'Apply Sales Rules in cfg' => false,
|
88 |
+
'Sales Rules Disabled in registry' => false
|
89 |
+
)
|
90 |
+
);
|
91 |
+
}
|
92 |
+
|
93 |
+
/**
|
94 |
+
* @after
|
95 |
+
*/
|
96 |
+
public function tearDown()
|
97 |
+
{
|
98 |
+
Mage::unregister('shopgate_disable_sales_rules');
|
99 |
+
}
|
100 |
+
}
|
app/code/community/Shopgate/Framework/changelog.txt
CHANGED
@@ -1,3 +1,7 @@
|
|
|
|
|
|
|
|
|
|
1 |
'''Version 2.9.35'''
|
2 |
* Fixed PayPal Website Payments Pro missing IPN data & no invoice
|
3 |
* Fixed bug with getting BillSAFE orders to ship
|
1 |
+
'''Version 2.9.36'''
|
2 |
+
* Update to library version 2.9.42
|
3 |
+
* Added support of shopping cart price rules for mobile orders
|
4 |
+
|
5 |
'''Version 2.9.35'''
|
6 |
* Fixed PayPal Website Payments Pro missing IPN data & no invoice
|
7 |
* Fixed bug with getting BillSAFE orders to ship
|
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>
|
@@ -364,6 +364,7 @@
|
|
364 |
<write_customfields_into_statushistory>1</write_customfields_into_statushistory>
|
365 |
<payment_title>Shopgate</payment_title>
|
366 |
<shipping_title>Shopgate</shipping_title>
|
|
|
367 |
<add_only_simple>0</add_only_simple>
|
368 |
<use_shopgate_prices>0</use_shopgate_prices>
|
369 |
</orders>
|
2 |
<config>
|
3 |
<modules>
|
4 |
<Shopgate_Framework>
|
5 |
+
<version>2.9.36</version>
|
6 |
</Shopgate_Framework>
|
7 |
</modules>
|
8 |
<phpunit>
|
364 |
<write_customfields_into_statushistory>1</write_customfields_into_statushistory>
|
365 |
<payment_title>Shopgate</payment_title>
|
366 |
<shipping_title>Shopgate</shipping_title>
|
367 |
+
<apply_cart_rules>0</apply_cart_rules>
|
368 |
<add_only_simple>0</add_only_simple>
|
369 |
<use_shopgate_prices>0</use_shopgate_prices>
|
370 |
</orders>
|
app/code/community/Shopgate/Framework/etc/system.xml
CHANGED
@@ -507,6 +507,16 @@
|
|
507 |
<show_in_website>1</show_in_website>
|
508 |
<show_in_store>1</show_in_store>
|
509 |
</shipping_title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
510 |
<add_only_simple translate="label comment">
|
511 |
<label>Add only the simple Product to order</label>
|
512 |
<comment>Note: In case the order contains a simple/config product, only the the simple product will be added to the order.</comment>
|
507 |
<show_in_website>1</show_in_website>
|
508 |
<show_in_store>1</show_in_store>
|
509 |
</shipping_title>
|
510 |
+
<apply_cart_rules translate="label comment">
|
511 |
+
<label>Apply Shopping Cart Price Rules to mobile orders</label>
|
512 |
+
<comment>Note: The discount will be shown as a coupon on the mobile shop's cart page.</comment>
|
513 |
+
<frontend_type>select</frontend_type>
|
514 |
+
<source_model>adminhtml/system_config_source_yesno</source_model>
|
515 |
+
<sort_order>55</sort_order>
|
516 |
+
<show_in_default>0</show_in_default>
|
517 |
+
<show_in_website>1</show_in_website>
|
518 |
+
<show_in_store>1</show_in_store>
|
519 |
+
</apply_cart_rules>
|
520 |
<add_only_simple translate="label comment">
|
521 |
<label>Add only the simple Product to order</label>
|
522 |
<comment>Note: In case the order contains a simple/config product, only the the simple product will be added to the order.</comment>
|
app/locale/de_AT/Shopgate_Framework.csv
CHANGED
@@ -228,6 +228,8 @@
|
|
228 |
"Attributes which should be exported","Attribute die exportiert werden sollen"
|
229 |
"Use Article Price Index in Product Export","Preis Index beim Export benutzen"
|
230 |
"Using the price index will speed up the export process but may show wrong prices if the index is outdated.","Die Benutzung des Preis Indexes wird den Export beschleunigen, kann aber zu falschen Preisen führen wenn der Index veraltet ist."
|
|
|
|
|
231 |
"Add only the simple Product to order","Nur den einfachen Artikel der Bestellung hinzufügen"
|
232 |
"Note: In case the order contains a simple/config product, only the the simple product will be added to the order.","Hinweis: Wenn eine Bestellung konfigurierbare Artikel enthält werden nur die jeweiligen einfachen Artikel der Bestellung hinzugefügt."
|
233 |
"Virtual","Virtuelle Artikel"
|
228 |
"Attributes which should be exported","Attribute die exportiert werden sollen"
|
229 |
"Use Article Price Index in Product Export","Preis Index beim Export benutzen"
|
230 |
"Using the price index will speed up the export process but may show wrong prices if the index is outdated.","Die Benutzung des Preis Indexes wird den Export beschleunigen, kann aber zu falschen Preisen führen wenn der Index veraltet ist."
|
231 |
+
"Apply Shopping Cart Price Rules to mobile orders","Warenkorb Preisregeln auf mobile Bestellungen anwenden"
|
232 |
+
"Note: The discount will be shown as a coupon on the mobile shop's cart page.","Hinweis: Der Rabatt wird im mobilen Shop als Gutschein dargestellt."
|
233 |
"Add only the simple Product to order","Nur den einfachen Artikel der Bestellung hinzufügen"
|
234 |
"Note: In case the order contains a simple/config product, only the the simple product will be added to the order.","Hinweis: Wenn eine Bestellung konfigurierbare Artikel enthält werden nur die jeweiligen einfachen Artikel der Bestellung hinzugefügt."
|
235 |
"Virtual","Virtuelle Artikel"
|
app/locale/de_CH/Shopgate_Framework.csv
CHANGED
@@ -228,6 +228,8 @@
|
|
228 |
"Attributes which should be exported","Attribute die exportiert werden sollen"
|
229 |
"Use Article Price Index in Product Export","Preis Index beim Export benutzen"
|
230 |
"Using the price index will speed up the export process but may show wrong prices if the index is outdated.","Die Benutzung des Preis Indexes wird den Export beschleunigen, kann aber zu falschen Preisen führen wenn der Index veraltet ist."
|
|
|
|
|
231 |
"Add only the simple Product to order","Nur den einfachen Artikel der Bestellung hinzufügen"
|
232 |
"Note: In case the order contains a simple/config product, only the the simple product will be added to the order.","Hinweis: Wenn eine Bestellung konfigurierbare Artikel enthält werden nur die jeweiligen einfachen Artikel der Bestellung hinzugefügt."
|
233 |
"Virtual","Virtuelle Artikel"
|
228 |
"Attributes which should be exported","Attribute die exportiert werden sollen"
|
229 |
"Use Article Price Index in Product Export","Preis Index beim Export benutzen"
|
230 |
"Using the price index will speed up the export process but may show wrong prices if the index is outdated.","Die Benutzung des Preis Indexes wird den Export beschleunigen, kann aber zu falschen Preisen führen wenn der Index veraltet ist."
|
231 |
+
"Apply Shopping Cart Price Rules to mobile orders","Warenkorb Preisregeln auf mobile Bestellungen anwenden"
|
232 |
+
"Note: The discount will be shown as a coupon on the mobile shop's cart page.","Hinweis: Der Rabatt wird im mobilen Shop als Gutschein dargestellt."
|
233 |
"Add only the simple Product to order","Nur den einfachen Artikel der Bestellung hinzufügen"
|
234 |
"Note: In case the order contains a simple/config product, only the the simple product will be added to the order.","Hinweis: Wenn eine Bestellung konfigurierbare Artikel enthält werden nur die jeweiligen einfachen Artikel der Bestellung hinzugefügt."
|
235 |
"Virtual","Virtuelle Artikel"
|
app/locale/de_DE/Shopgate_Framework.csv
CHANGED
@@ -228,6 +228,8 @@
|
|
228 |
"Attributes which should be exported","Attribute die exportiert werden sollen"
|
229 |
"Use Article Price Index in Product Export","Preis Index beim Export benutzen"
|
230 |
"Using the price index will speed up the export process but may show wrong prices if the index is outdated.","Die Benutzung des Preis Indexes wird den Export beschleunigen, kann aber zu falschen Preisen führen wenn der Index veraltet ist."
|
|
|
|
|
231 |
"Add only the simple Product to order","Nur den einfachen Artikel der Bestellung hinzufügen"
|
232 |
"Note: In case the order contains a simple/config product, only the the simple product will be added to the order.","Hinweis: Wenn eine Bestellung konfigurierbare Artikel enthält werden nur die jeweiligen einfachen Artikel der Bestellung hinzugefügt."
|
233 |
"Virtual","Virtuelle Artikel"
|
228 |
"Attributes which should be exported","Attribute die exportiert werden sollen"
|
229 |
"Use Article Price Index in Product Export","Preis Index beim Export benutzen"
|
230 |
"Using the price index will speed up the export process but may show wrong prices if the index is outdated.","Die Benutzung des Preis Indexes wird den Export beschleunigen, kann aber zu falschen Preisen führen wenn der Index veraltet ist."
|
231 |
+
"Apply Shopping Cart Price Rules to mobile orders","Warenkorb Preisregeln auf mobile Bestellungen anwenden"
|
232 |
+
"Note: The discount will be shown as a coupon on the mobile shop's cart page.","Hinweis: Der Rabatt wird im mobilen Shop als Gutschein dargestellt."
|
233 |
"Add only the simple Product to order","Nur den einfachen Artikel der Bestellung hinzufügen"
|
234 |
"Note: In case the order contains a simple/config product, only the the simple product will be added to the order.","Hinweis: Wenn eine Bestellung konfigurierbare Artikel enthält werden nur die jeweiligen einfachen Artikel der Bestellung hinzugefügt."
|
235 |
"Virtual","Virtuelle Artikel"
|
lib/Shopgate/changelog.txt
CHANGED
@@ -1,3 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
1 |
'''Version 2.9.41'''
|
2 |
* meta tags and mobile header script won't be displayed anymore for inactive shops when using Shopgate_Helper_Redirect_MobileRedirect
|
3 |
|
1 |
+
'''Version 2.9.42'''
|
2 |
+
* fixed an issue with home page infinite redirect loop
|
3 |
+
* fixed a bug in processing the user agent blacklist used for mobile redirect
|
4 |
+
* moved ShopgateOrder::$tracking_get_parameters and its getter & setter to ShopgateCartBase
|
5 |
+
|
6 |
'''Version 2.9.41'''
|
7 |
* meta tags and mobile header script won't be displayed anymore for inactive shops when using Shopgate_Helper_Redirect_MobileRedirect
|
8 |
|
lib/Shopgate/classes/core.php
CHANGED
@@ -24,7 +24,7 @@
|
|
24 |
###################################################################################
|
25 |
# define constants
|
26 |
###################################################################################
|
27 |
-
define(
|
28 |
define('SHOPGATE_LIBRARY_ENCODING' , 'UTF-8');
|
29 |
define('SHOPGATE_BASE_DIR', realpath(dirname(__FILE__).'/../'));
|
30 |
|
24 |
###################################################################################
|
25 |
# define constants
|
26 |
###################################################################################
|
27 |
+
define("SHOPGATE_LIBRARY_VERSION", "2.9.42");
|
28 |
define('SHOPGATE_LIBRARY_ENCODING' , 'UTF-8');
|
29 |
define('SHOPGATE_BASE_DIR', realpath(dirname(__FILE__).'/../'));
|
30 |
|
lib/Shopgate/classes/helper/redirect/KeywordsManager.php
CHANGED
@@ -45,14 +45,14 @@ class Shopgate_Helper_Redirect_KeywordsManager implements Shopgate_Helper_Redire
|
|
45 |
protected $disableUpdate;
|
46 |
|
47 |
/**
|
48 |
-
* @param
|
49 |
-
* @param string
|
50 |
-
* @param string
|
51 |
-
* @param int
|
52 |
-
* @param bool
|
53 |
*/
|
54 |
public function __construct(
|
55 |
-
|
56 |
$whitelistCacheFilePath,
|
57 |
$blacklistCacheFilePath,
|
58 |
$cacheTimeout = self::DEFAULT_CACHE_TIME,
|
@@ -73,16 +73,19 @@ class Shopgate_Helper_Redirect_KeywordsManager implements Shopgate_Helper_Redire
|
|
73 |
public function toRegEx()
|
74 |
{
|
75 |
return
|
76 |
-
'
|
|
|
|
|
|
|
77 |
|
78 |
// positive lookahead for the whitelist
|
79 |
'(?=' . implode('|', array_map(array($this, 'prepareKeyword'), $this->whitelist)) . ')' .
|
80 |
|
81 |
// negative lookahead for the blacklist
|
82 |
-
'(?!' . implode('|', array_map(array($this, 'prepareKeyword'), $this->blacklist)) . ')' .
|
83 |
|
84 |
// modfiers: case-insensitive
|
85 |
-
'
|
86 |
}
|
87 |
|
88 |
public function getWhitelist()
|
45 |
protected $disableUpdate;
|
46 |
|
47 |
/**
|
48 |
+
* @param ShopgateMerchantApiInterface $merchantApi
|
49 |
+
* @param string $whitelistCacheFilePath
|
50 |
+
* @param string $blacklistCacheFilePath
|
51 |
+
* @param int $cacheTimeout
|
52 |
+
* @param bool $disableUpdate
|
53 |
*/
|
54 |
public function __construct(
|
55 |
+
ShopgateMerchantApiInterface $merchantApi,
|
56 |
$whitelistCacheFilePath,
|
57 |
$blacklistCacheFilePath,
|
58 |
$cacheTimeout = self::DEFAULT_CACHE_TIME,
|
73 |
public function toRegEx()
|
74 |
{
|
75 |
return
|
76 |
+
'/^' .
|
77 |
+
|
78 |
+
// negative lookahead for the blacklist
|
79 |
+
'((?!' . implode('|', array_map(array($this, 'prepareKeyword'), $this->blacklist)) . ').)*' .
|
80 |
|
81 |
// positive lookahead for the whitelist
|
82 |
'(?=' . implode('|', array_map(array($this, 'prepareKeyword'), $this->whitelist)) . ')' .
|
83 |
|
84 |
// negative lookahead for the blacklist
|
85 |
+
'((?!' . implode('|', array_map(array($this, 'prepareKeyword'), $this->blacklist)) . ').)*' .
|
86 |
|
87 |
// modfiers: case-insensitive
|
88 |
+
'$/i';
|
89 |
}
|
90 |
|
91 |
public function getWhitelist()
|
lib/Shopgate/classes/helper/redirect/LinkBuilder.php
CHANGED
@@ -49,12 +49,12 @@ class Shopgate_Helper_Redirect_LinkBuilder implements Shopgate_Helper_Redirect_L
|
|
49 |
|
50 |
public function buildDefault(array $parameters = array())
|
51 |
{
|
52 |
-
return $this->
|
53 |
}
|
54 |
|
55 |
public function buildHome(array $parameters = array())
|
56 |
{
|
57 |
-
return $this->
|
58 |
}
|
59 |
|
60 |
public function buildProduct($uid, array $parameters = array())
|
49 |
|
50 |
public function buildDefault(array $parameters = array())
|
51 |
{
|
52 |
+
return $this->buildScriptFor(self::LINK_TYPE_DEFAULT, '', '');
|
53 |
}
|
54 |
|
55 |
public function buildHome(array $parameters = array())
|
56 |
{
|
57 |
+
return $this->buildScriptFor(self::LINK_TYPE_HOME, '', '');
|
58 |
}
|
59 |
|
60 |
public function buildProduct($uid, array $parameters = array())
|
lib/Shopgate/classes/orders.php
CHANGED
@@ -217,8 +217,9 @@ abstract class ShopgateCartBase extends ShopgateContainer {
|
|
217 |
protected $external_coupons = array();
|
218 |
protected $shopgate_coupons = array();
|
219 |
|
220 |
-
protected $items
|
221 |
-
|
|
|
222 |
##########
|
223 |
# Setter #
|
224 |
##########
|
@@ -527,8 +528,16 @@ abstract class ShopgateCartBase extends ShopgateContainer {
|
|
527 |
|
528 |
$this->items = $value;
|
529 |
}
|
530 |
-
|
531 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
532 |
##########
|
533 |
# Getter #
|
534 |
##########
|
@@ -723,6 +732,14 @@ abstract class ShopgateCartBase extends ShopgateContainer {
|
|
723 |
public function getItems() {
|
724 |
return $this->items;
|
725 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
726 |
}
|
727 |
|
728 |
class ShopgateCart extends ShopgateCartBase {
|
@@ -773,8 +790,7 @@ class ShopgateOrder extends ShopgateCartBase {
|
|
773 |
protected $update_payment = 0;
|
774 |
|
775 |
protected $delivery_notes = array();
|
776 |
-
|
777 |
-
|
778 |
public function accept(ShopgateContainerVisitor $v) {
|
779 |
$v->visitOrder($this);
|
780 |
}
|
@@ -935,15 +951,10 @@ class ShopgateOrder extends ShopgateCartBase {
|
|
935 |
|
936 |
$this->delivery_notes = $value;
|
937 |
}
|
938 |
-
|
939 |
-
|
940 |
-
|
941 |
-
|
942 |
-
public function setTrackingGetParameters($value) {
|
943 |
-
$this->tracking_get_parameters = (array) $value;
|
944 |
-
}
|
945 |
-
|
946 |
-
|
947 |
##########
|
948 |
# Getter #
|
949 |
##########
|
@@ -1114,13 +1125,8 @@ class ShopgateOrder extends ShopgateCartBase {
|
|
1114 |
public function getDeliveryNotes() {
|
1115 |
return $this->delivery_notes;
|
1116 |
}
|
1117 |
-
|
1118 |
-
|
1119 |
-
* @return array
|
1120 |
-
*/
|
1121 |
-
public function getTrackingGetParameters() {
|
1122 |
-
return $this->tracking_get_parameters;
|
1123 |
-
}
|
1124 |
}
|
1125 |
|
1126 |
class ShopgateOrderItem extends ShopgateContainer {
|
217 |
protected $external_coupons = array();
|
218 |
protected $shopgate_coupons = array();
|
219 |
|
220 |
+
protected $items = array();
|
221 |
+
protected $tracking_get_parameters = array();
|
222 |
+
|
223 |
##########
|
224 |
# Setter #
|
225 |
##########
|
528 |
|
529 |
$this->items = $value;
|
530 |
}
|
531 |
+
|
532 |
+
/**
|
533 |
+
* @param array $value
|
534 |
+
*/
|
535 |
+
public function setTrackingGetParameters($value)
|
536 |
+
{
|
537 |
+
$this->tracking_get_parameters = (array)$value;
|
538 |
+
}
|
539 |
+
|
540 |
+
|
541 |
##########
|
542 |
# Getter #
|
543 |
##########
|
732 |
public function getItems() {
|
733 |
return $this->items;
|
734 |
}
|
735 |
+
|
736 |
+
/**
|
737 |
+
* @return array
|
738 |
+
*/
|
739 |
+
public function getTrackingGetParameters()
|
740 |
+
{
|
741 |
+
return $this->tracking_get_parameters;
|
742 |
+
}
|
743 |
}
|
744 |
|
745 |
class ShopgateCart extends ShopgateCartBase {
|
790 |
protected $update_payment = 0;
|
791 |
|
792 |
protected $delivery_notes = array();
|
793 |
+
|
|
|
794 |
public function accept(ShopgateContainerVisitor $v) {
|
795 |
$v->visitOrder($this);
|
796 |
}
|
951 |
|
952 |
$this->delivery_notes = $value;
|
953 |
}
|
954 |
+
|
955 |
+
|
956 |
+
|
957 |
+
|
|
|
|
|
|
|
|
|
|
|
958 |
##########
|
959 |
# Getter #
|
960 |
##########
|
1125 |
public function getDeliveryNotes() {
|
1126 |
return $this->delivery_notes;
|
1127 |
}
|
1128 |
+
|
1129 |
+
|
|
|
|
|
|
|
|
|
|
|
1130 |
}
|
1131 |
|
1132 |
class ShopgateOrderItem extends ShopgateContainer {
|
lib/Shopgate/tests/classes/helper/redirect/KeywordsManagerTest.php
ADDED
@@ -0,0 +1,129 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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_Helper_Redirect_KeywordsManagerTest extends PHPUnit_Framework_TestCase
|
25 |
+
{
|
26 |
+
/** @var ShopgateMerchantApiInterface|PHPUnit_Framework_MockObject_MockObject $merchantApi */
|
27 |
+
protected $merchantApi;
|
28 |
+
|
29 |
+
/** @var string[] */
|
30 |
+
protected $matchingUserAgents;
|
31 |
+
|
32 |
+
/** @var string[] */
|
33 |
+
protected $nonMatchingUserAgents;
|
34 |
+
|
35 |
+
public function setUp()
|
36 |
+
{
|
37 |
+
/** @var ShopgateMerchantApiInterface|PHPUnit_Framework_MockObject_MockObject $merchantApi */
|
38 |
+
$this->merchantApi = $this->getMockForAbstractClass('ShopgateMerchantApiInterface');
|
39 |
+
|
40 |
+
$this->merchantApi->method('getMobileRedirectUserAgents')->will($this->returnValue(
|
41 |
+
array(
|
42 |
+
'keywords' => array(
|
43 |
+
'redirectbot',
|
44 |
+
'iphone',
|
45 |
+
'ipod',
|
46 |
+
'ipad',
|
47 |
+
'android',
|
48 |
+
'windows phone 8',
|
49 |
+
),
|
50 |
+
'skip_keywords' => array(
|
51 |
+
'shopgate',
|
52 |
+
'nexus 7',
|
53 |
+
),
|
54 |
+
)
|
55 |
+
))
|
56 |
+
;
|
57 |
+
|
58 |
+
$this->matchingUserAgents = array(
|
59 |
+
'redirectbot',
|
60 |
+
'iphone',
|
61 |
+
'ipod',
|
62 |
+
'ipad',
|
63 |
+
'android',
|
64 |
+
'windows phone 8',
|
65 |
+
'redirectbotiphoneipodipadandroid',
|
66 |
+
'redirectbotiphoneipodipadandroidwindows phone 8',
|
67 |
+
'erdirectbotiphoneipodipadandroidwindows phone 8',
|
68 |
+
'windows phone 8redirectbotiphoneipodipadandroid',
|
69 |
+
'Mozilla/5.0 (Linux; Android 4.3; Nxs 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
70 |
+
'Mozilla/5.0 (Windows; Windows Phone 8; Windows Phone 8 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
71 |
+
);
|
72 |
+
|
73 |
+
$this->nonMatchingUserAgents = array(
|
74 |
+
'',
|
75 |
+
'shopgate',
|
76 |
+
'nexus 7',
|
77 |
+
'shopgatenexus 7',
|
78 |
+
'nexus 7shopgate',
|
79 |
+
'shopgaterandom',
|
80 |
+
'randomshopgate',
|
81 |
+
'randomshopgaterandom',
|
82 |
+
'nexus 7random',
|
83 |
+
'randomnexus 7',
|
84 |
+
'randomnexus 7random',
|
85 |
+
'Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
86 |
+
'Mozilla/5.0 (Linux; Nexus 7 Android 4.3; Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
87 |
+
'Mozilla/5.0 (Linux; Nexus 7 Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
88 |
+
'Mozilla/5.0 (Linux; Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
89 |
+
'Mozilla/5.0 (Linux; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
90 |
+
'Mozilla/5.0 (Windows; Windows Phone 8; Nexus 7; Windows Phone 8 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.23 Safari/537.36',
|
91 |
+
);
|
92 |
+
}
|
93 |
+
|
94 |
+
public function testRegexMatchesWhitelistedUserAgents()
|
95 |
+
{
|
96 |
+
$keywordsManager = new Shopgate_Helper_Redirect_KeywordsManager(
|
97 |
+
$this->merchantApi,
|
98 |
+
'/dev/null',
|
99 |
+
'/dev/null'
|
100 |
+
);
|
101 |
+
|
102 |
+
$regEx = $keywordsManager->toRegEx();
|
103 |
+
|
104 |
+
foreach ($this->matchingUserAgents as $ua) {
|
105 |
+
$this->assertRegExp(
|
106 |
+
$regEx,
|
107 |
+
$ua
|
108 |
+
);
|
109 |
+
}
|
110 |
+
}
|
111 |
+
|
112 |
+
public function testRegexDoesNotMatchBlacklistedUserAgents()
|
113 |
+
{
|
114 |
+
$keywordsManager = new Shopgate_Helper_Redirect_KeywordsManager(
|
115 |
+
$this->merchantApi,
|
116 |
+
'/dev/null',
|
117 |
+
'/dev/null'
|
118 |
+
);
|
119 |
+
|
120 |
+
$regEx = $keywordsManager->toRegEx();
|
121 |
+
|
122 |
+
foreach ($this->nonMatchingUserAgents as $ua) {
|
123 |
+
$this->assertNotRegExp(
|
124 |
+
$regEx,
|
125 |
+
$ua
|
126 |
+
);
|
127 |
+
}
|
128 |
+
}
|
129 |
+
}
|
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>Stephan Recknagel</name><user>Shopgate</user><email>stephan.recknagel@shopgate.com</email></author><author><name>André Kraus</name><user>Shopgate</user><email>andre.kraus@shopgate.com</email></author><author><name>Alexander Wesselburg</name><user>Shopgate</user><email>alexander.wesselburg@shopgate.com</email></author><author><name>Rainer Skistims</name><user>Shopgate</user><email>rainer.skistims@shopgate.com</email></author><author><name>Konstantin Kiritsenko</name><user>Shopgate</user><email>konstantin.kiritsenko@shopgate.com</email></author></authors>
|
13 |
-
<date>2016-04-
|
14 |
-
<time>
|
15 |
-
<contents><target name="mageetc"><dir name="modules"><file name="Shopgate_Framework.xml" hash="029a3b0976d6f4de9146c8011124de93"/></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="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="Client.php" hash="175215077f24bcd2bed626aa59fc039c"/><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="c2d2e995d855f9cf462bc556046f5759"/><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="06fc07d5c054290548e5bdab40c2bfc5"/></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="6492fb81d950812af8db28e959ffcd7e"/></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="89ac2df2c33ed9340827d45cdb9a454f"/><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="3d0af24fa01b3d878bfed81a87930b15"/><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="9108e63c82d14a7cef72a58c5fd2df81"/><file name="Wspp.php" hash="a03e4e06431daac65d8ae5a79eb5335b"/></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="013dc1b6962a78cb86c18900a89ca7e1"/><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="fa7259d6751ce649e65159753c73fe60"/></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="64efaea0bcd38872b44e8fa5eb6ffa0d"/></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="Pp"><file name="AbstractTest.php" hash="1369367e5198c8178a475eccd193da35"/></dir><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="460cdaa89c6f0dde4a808e1fab11129e"/><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="f3f30750164aacc97307685b9e09735c"/><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.36</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>Stephan Recknagel</name><user>Shopgate</user><email>stephan.recknagel@shopgate.com</email></author><author><name>André Kraus</name><user>Shopgate</user><email>andre.kraus@shopgate.com</email></author><author><name>Alexander Wesselburg</name><user>Shopgate</user><email>alexander.wesselburg@shopgate.com</email></author><author><name>Rainer Skistims</name><user>Shopgate</user><email>rainer.skistims@shopgate.com</email></author><author><name>Konstantin Kiritsenko</name><user>Shopgate</user><email>konstantin.kiritsenko@shopgate.com</email></author></authors>
|
13 |
+
<date>2016-04-04</date>
|
14 |
+
<time>11:19:49</time>
|
15 |
+
<contents><target name="mageetc"><dir name="modules"><file name="Shopgate_Framework.xml" hash="029a3b0976d6f4de9146c8011124de93"/></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="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="Client.php" hash="175215077f24bcd2bed626aa59fc039c"/><file name="Order.php" hash="474c2aa15f352224c11c8ab17e921c9d"/></dir><file name="Config.php" hash="b0e489659332274686965e5e8d200d88"/><file name="Coupon.php" hash="502774efdc4bc7e609cab04cc6b7022e"/><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="ca7c79b51b4379946ba3d792b9bca76b"/><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="06fc07d5c054290548e5bdab40c2bfc5"/></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="6492fb81d950812af8db28e959ffcd7e"/></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="e5c9a67abe17a40938e95c5629fda1d5"/><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="3d0af24fa01b3d878bfed81a87930b15"/><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="9108e63c82d14a7cef72a58c5fd2df81"/><file name="Wspp.php" hash="a03e4e06431daac65d8ae5a79eb5335b"/></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="14d619891b5a9410b7e529d7b363bd27"/><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="fa7259d6751ce649e65159753c73fe60"/></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="64efaea0bcd38872b44e8fa5eb6ffa0d"/></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"><file name="ObserverTest.php" hash="bd6dea886fed4a44f5a3f581621a833a"/><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="Pp"><file name="AbstractTest.php" hash="1369367e5198c8178a475eccd193da35"/></dir><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="5aa4b51f11bf31288aa2e661c22ce135"/><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="cf40e376c1903805ec3759490525f993"/><file name="system.xml" hash="c7f55765dac95c436147785275f4b362"/></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="eb25c8acdee6d7a4d6b51c354774e0ce"/></dir><dir name="de_CH"><file name="Shopgate_Framework.csv" hash="eb25c8acdee6d7a4d6b51c354774e0ce"/></dir><dir name="de_AT"><file name="Shopgate_Framework.csv" hash="2fb25887b4b9c89b2a241759ddc1590b"/></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="f9c3e9cfc0470a026fb9eaca705403b8"/><dir name="classes"><file name="apis.php" hash="8d89fdce7a3eeca342a5165bb9a2530b"/><file name="configuration.php" hash="264d43767346d16fd8c1fcfdcbec0ca2"/><file name="core.php" hash="754c598a012e63a23eccd600cc4618a6"/><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="3e8233fa248cb795642b4306b3ebdd13"/><file name="KeywordsManagerInterface.php" hash="32cda83161084b4f5904eeb5f50a6547"/><file name="LinkBuilder.php" hash="52d193384a8ffed61fd83c5e1befd63c"/><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="db9fb6643aafe97c93447e4fcc950b6b"/><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="KeywordsManagerTest.php" hash="185c285d78e7c4e25ede957918018fe6"/><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>
|