Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit d15b8dc

Browse files
committed
Merge remote-tracking branch 'remotes/dev/master'
2 parents 7ab29f3 + 0046e33 commit d15b8dc

File tree

15 files changed

+258
-62
lines changed

15 files changed

+258
-62
lines changed

CHANGELOG.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
Current version 1.1.4.4 is compatible with OroCRM version 1.*
1+
Current version 1.2.16 is compatible with OroCRM version 1.*
2+
3+
- fixed version on application config file
4+
5+
## Changelog for 1.2.15
6+
7+
- Fixed bug with missing Gift Order Message during sync with OroCRM.
8+
9+
## Changelog for 1.2.14
10+
11+
- Added new endpoint for getting Regions list
12+
13+
## Changelog for 1.1.4.4
214

315
- Fixed issue on some environments with CE when class_exist is called on class from EE.
416

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,6 @@ The OroCRM Bridge extension improves on the Magento SOAP API v2 to expose additi
77
- List of newsletter subscribers
88
- List of viewed products
99
- Customer wish list information
10+
- List of all regions
1011

1112
The OroCRM Bridge is recommended for better integration between OroCRM and Magento. It can also be used for other integrations that require an API for the features listed.
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<?php
2+
3+
class Oro_Api_Model_Directory_Region_Api extends Mage_Api_Model_Resource_Abstract
4+
{
5+
/**
6+
* @var Oro_Api_Helper_Data
7+
*/
8+
protected $_apiHelper;
9+
10+
public function __construct()
11+
{
12+
$this->_apiHelper = Mage::helper('oro_api');
13+
}
14+
15+
16+
/**
17+
* Retrive list of regions
18+
*
19+
* @param object|array $filters
20+
* @param \stdClass $pager
21+
*
22+
* @return array
23+
*/
24+
public function items($filters, $pager)
25+
{
26+
/** @var Mage_Directory_Model_Resource_Region_Collection $collection */
27+
$collection = Mage::getModel('directory/region')->getCollection();
28+
29+
$filters = $this->_apiHelper->parseFilters($filters);
30+
try {
31+
foreach ($filters as $field => $value) {
32+
$collection->addFieldToFilter($field, $value);
33+
}
34+
} catch (Mage_Core_Exception $e) {
35+
$this->_fault('filters_invalid', $e->getMessage());
36+
}
37+
38+
$collection->unshiftOrder('region_id', Varien_Data_Collection_Db::SORT_ORDER_ASC);
39+
if (!$this->_apiHelper->applyPager($collection, $pager)) {
40+
// there's no such page, so no results for it
41+
return array();
42+
}
43+
44+
$result = array();
45+
/** @var Mage_Directory_Model_Region $region */
46+
foreach ($collection as $region) {
47+
$result[] = array(
48+
'region_id' => $region->getId(),
49+
'code' => $region->getCode(),
50+
'countryCode' => $region->getCountryId(),
51+
'name' => $region->getName(),
52+
);
53+
}
54+
55+
return $result;
56+
}
57+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
class Oro_Api_Model_Directory_Region_Api_V2
4+
extends Oro_Api_Model_Directory_Region_Api
5+
{
6+
7+
}

app/code/community/Oro/Api/Model/Sales/Order/Api.php

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,25 +120,30 @@ protected function _getOrderData($order)
120120
protected function _getOrderAdditionalInfo($order)
121121
{
122122
if ($order->getGiftMessageId() > 0) {
123-
$order->setGiftMessage(
124-
Mage::getSingleton('giftmessage/message')->load($order->getGiftMessageId())->getMessage()
125-
);
123+
$orderGiftMessage = Mage::getSingleton('giftmessage/message')->load($order->getGiftMessageId())
124+
->getMessage();
125+
} else {
126+
$orderGiftMessage = null;
126127
}
127128

128129
$result = array();
130+
$result['gift_message'] = $orderGiftMessage;
129131
$result['shipping_address'] = $this->_getAttributes($order->getShippingAddress(), 'order_address');
130132
$result['billing_address'] = $this->_getAttributes($order->getBillingAddress(), 'order_address');
131133
$result['items'] = array();
132134

133135
/** @var Mage_Sales_Model_Order_Item $item */
134136
foreach ($order->getAllItems() as $item) {
135137
if ($item->getGiftMessageId() > 0) {
136-
$item->setGiftMessage(
137-
Mage::getSingleton('giftmessage/message')->load($item->getGiftMessageId())->getMessage()
138-
);
138+
$cartItemGiftMessage = Mage::getSingleton('giftmessage/message')->load($item->getGiftMessageId())
139+
->getMessage();
140+
} else {
141+
$cartItemGiftMessage = null;
139142
}
140143

141-
$result['items'][] = $this->_getAttributes($item, 'order_item');
144+
$cartItemInfo = $this->_getAttributes($item, 'order_item');
145+
$cartItemInfo['gift_message'] = $cartItemGiftMessage;
146+
$result['items'][] = $cartItemInfo;
142147
}
143148

144149
$result['payment'] = $this->_getAttributes($order->getPayment(), 'order_payment');

app/code/community/Oro/Api/etc/api.xml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,18 @@
289289
</list>
290290
</methods>
291291
</oro_website>
292+
<oro_region translate="title" module="oro_api">
293+
<model>oro_api/directory_region_api</model>
294+
<title>Region List Information</title>
295+
<acl>oro</acl>
296+
<methods>
297+
<list translate="title" module="oro_api">
298+
<title>Get list of all regions</title>
299+
<method>items</method>
300+
<acl>directory/region</acl>
301+
</list>
302+
</methods>
303+
</oro_region>
292304
</resources>
293305
<rest>
294306
<mapping>
@@ -325,6 +337,9 @@
325337
<oro_website>
326338
<get><method>list</method></get>
327339
</oro_website>
340+
<oro_region>
341+
<get><method>list</method></get>
342+
</oro_region>
328343
</mapping>
329344
</rest>
330345
<acl>
@@ -391,6 +406,9 @@
391406
<website translate="title" module="oro_api">
392407
<title>Website List</title>
393408
</website>
409+
<region translate="title" module="oro_api">
410+
<title>Region List</title>
411+
</region>
394412
</oro>
395413
</resources>
396414
</acl>
@@ -400,6 +418,7 @@
400418
<oro_quote>oroQuote</oro_quote>
401419
<oro_order>oroOrder</oro_order>
402420
<oro_website>oroWebsite</oro_website>
421+
<oro_region>oroRegion</oro_region>
403422
<oro_customer>oroCustomer</oro_customer>
404423
<oro_customer_address>oroCustomerAddress</oro_customer_address>
405424
<wishlist>wishlist</wishlist>

app/code/community/Oro/Api/etc/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<config>
2121
<modules>
2222
<Oro_Api>
23-
<version>1.2.12</version>
23+
<version>1.2.16</version>
2424
</Oro_Api>
2525
</modules>
2626
<global>

app/code/community/Oro/Api/etc/wsdl.xml

Lines changed: 61 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -299,27 +299,27 @@
299299

300300
<complexType name="oroCustomerEntity">
301301
<all>
302-
<element name="customer_id" type="xsd:int" minOccurs="0" />
303-
<element name="created_at" type="xsd:string" minOccurs="0" />
304-
<element name="updated_at" type="xsd:string" minOccurs="0" />
305-
<element name="increment_id" type="xsd:string" minOccurs="0" />
306-
<element name="store_id" type="xsd:int" minOccurs="0" />
307-
<element name="website_id" type="xsd:int" minOccurs="0" />
308-
<element name="created_in" type="xsd:string" minOccurs="0" />
309-
<element name="email" type="xsd:string" minOccurs="0" />
310-
<element name="firstname" type="xsd:string" minOccurs="0" />
311-
<element name="middlename" type="xsd:string" minOccurs="0" />
312-
<element name="lastname" type="xsd:string" minOccurs="0" />
313-
<element name="group_id" type="xsd:int" minOccurs="0" />
314-
<element name="prefix" type="xsd:string" minOccurs="0" />
315-
<element name="suffix" type="xsd:string" minOccurs="0" />
316-
<element name="dob" type="xsd:string" minOccurs="0" />
317-
<element name="taxvat" type="xsd:string" minOccurs="0" />
318-
<element name="confirmation" type="xsd:boolean" minOccurs="0" />
319-
<element name="password_hash" type="xsd:string" minOccurs="0" />
320-
<element name="gender" type="xsd:string" minOccurs="0" />
321-
322-
<element name="addresses" type="typens:customerAddressEntityArray" minOccurs="0" maxOccurs="1"/>
302+
<element name="customer_id" type="xsd:int" />
303+
<element name="created_at" type="xsd:string" />
304+
<element name="updated_at" type="xsd:string" />
305+
<element name="increment_id" type="xsd:string" />
306+
<element name="store_id" type="xsd:int" />
307+
<element name="website_id" type="xsd:int" />
308+
<element name="created_in" type="xsd:string" />
309+
<element name="email" type="xsd:string" />
310+
<element name="firstname" type="xsd:string" />
311+
<element name="middlename" type="xsd:string" />
312+
<element name="lastname" type="xsd:string" />
313+
<element name="group_id" type="xsd:int" />
314+
<element name="prefix" type="xsd:string" />
315+
<element name="suffix" type="xsd:string" />
316+
<element name="dob" type="xsd:string" />
317+
<element name="taxvat" type="xsd:string" />
318+
<element name="confirmation" type="xsd:boolean" />
319+
<element name="password_hash" type="xsd:string" />
320+
<element name="gender" type="xsd:string" />
321+
322+
<element name="addresses" type="typens:customerAddressEntityArray" />
323323
<element name="attributes" type="typens:associativeArray" minOccurs="0" maxOccurs="1"/>
324324
</all>
325325
</complexType>
@@ -375,6 +375,24 @@
375375
</restriction>
376376
</complexContent>
377377
</complexType>
378+
379+
<complexType name="oroRegionEntity">
380+
<all>
381+
<element name="region_id" type="xsd:int" minOccurs="0" />
382+
<element name="countryCode" type="xsd:string" minOccurs="0" />
383+
<element name="code" type="xsd:string" minOccurs="0" />
384+
<element name="name" type="xsd:string" minOccurs="0" />
385+
</all>
386+
</complexType>
387+
388+
389+
<complexType name="oroRegionEntityArray">
390+
<complexContent>
391+
<restriction base="soapenc:Array">
392+
<attribute ref="soapenc:arrayType" wsdl:arrayType="typens:oroRegionEntity[]" />
393+
</restriction>
394+
</complexContent>
395+
</complexType>
378396
</schema>
379397
</types>
380398

@@ -504,6 +522,12 @@
504522
<input message="typens:oroWebsiteListRequest" />
505523
<output message="typens:oroWebsiteListResponse" />
506524
</operation>
525+
526+
<operation name="oroRegionList">
527+
<documentation>Retrieve regions list</documentation>
528+
<input message="typens:oroRegionListRequest" />
529+
<output message="typens:oroRegionListResponse" />
530+
</operation>
507531
</portType>
508532

509533
<binding name="{{var wsdl.handler}}Binding" type="typens:{{var wsdl.handler}}PortType">
@@ -613,6 +637,11 @@
613637
<input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></input>
614638
<output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></output>
615639
</operation>
640+
<operation name="oroRegionList">
641+
<soap:operation soapAction="urn:{{var wsdl.handler}}Action" />
642+
<input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></input>
643+
<output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></output>
644+
</operation>
616645
</binding>
617646

618647
<message name="oroPingRequest">
@@ -773,5 +802,16 @@
773802
<part name="result" type="typens:oroWebsiteEntityArray" />
774803
</message>
775804
<!-- Oro Website -->
805+
806+
<!-- Oro Region -->
807+
<message name="oroRegionListRequest">
808+
<part name="sessionId" type="xsd:string" />
809+
<part name="filters" type="typens:filters" />
810+
<part name="pager" type="typens:pager" />
811+
</message>
812+
<message name="oroRegionListResponse">
813+
<part name="result" type="typens:oroRegionEntityArray" />
814+
</message>
815+
<!-- Oro Region -->
776816
</definitions>
777817

0 commit comments

Comments
 (0)